Care to link to it, so we all have a frame of reference? I don't
immediately see it on their forums.


On Mon, May 20, 2013 at 9:15 AM, Howard W. Smith, Jr. <
smithh032...@gmail.com> wrote:

> There was a separate thread in PrimeFaces forum, where I was suggested to
> use @Typed instead of my user-defined @Descendant. :)
>
> I will try @Typed as you recommended and report back, ASAP. Thanks.
>
>
>
> On Mon, May 20, 2013 at 9:13 AM, John D. Ament <john.d.am...@gmail.com
> >wrote:
>
> > Howard,
> >
> > When were you recommended to use @Typed?
> > @Typed (in that thread) was being used to *remove* objects from being
> > installed via CDI.
> > If you want to use @Typed you need to use it as @Typed(pf_
> > OrderCustomerPointOfContactController.class)
> >
> >
> > On Mon, May 20, 2013 at 9:08 AM, Howard W. Smith, Jr. <
> > smithh032...@gmail.com> wrote:
> >
> > > Okay, I've seen the recent OWB (or CDI) topics, so I thought I might
> > > introduce a separate thread based on my experience today.
> > >
> > > Months ago, I migrated from JSF managed beans to CDI manageds (and
> > migrated
> > > from Glassfish to TomEE/OpenWebBeans), two birds with one stone. During
> > > that migration, I created the following for descendant managed beans in
> > my
> > > app.
> > >
> > > @Qualifier
> > > @Retention(RUNTIME)
> > > @Target({TYPE, METHOD, FIELD, PARAMETER})
> > > public @interface Descendant {}
> > >
> > > which allowed me to implement the following ancestor class (for
> example):
> > >
> > > @Default
> > > @Named("pf_addressController")
> > > @SessionScoped
> > > public class pf_AddressController implements Serializable {
> > >
> > > and develop descendants, which extend the ancestor as follows (for
> > > example):
> > >
> > > @Descendant
> > > @Named("pf_hotelAddressController")
> > > @SessionScoped
> > > public class pf_HotelAddressController extends pf_AddressController {
> > >
> > > also, I was able to add the following to one of my pf_OrdersController
> > > (which has 'no' descendant classes)
> > >
> > >     @Inject @Descendant
> > >     private pf_OrderCustomerPointOfContactController
> > > orderCustomerPointOfContactController;
> > >
> > > Everything mentioned above has worked in production ever since I
> started
> > > using TomEE (almost 6 months ago).
> > >
> > > Today, it was suggested that I use @Typed instead of this user-defined
> > > @Descendant. @Typed seems to work well on/for extending managed bean
> > > ancestors, but I replaced @Descendant (in the code above) with @Typed
> as
> > > seen below (for bean 'member'):
> > >
> > >     @Inject @Descendant
> > >     private pf_OrderCustomerPointOfContactController
> > > orderCustomerPointOfContactController;
> > >
> > > and now, TomEE will not start, because of the following error:
> > >
> > >
> > > INFO: Adding OpenWebBeansPlugin : [CdiPlugin]
> > > May 20, 2013 8:42:34 AM org.apache.webbeans.plugins.PluginLoader
> startUp
> > > INFO: Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin]
> > > May 20, 2013 8:42:36 AM org.apache.openejb.cdi.OpenEJBLifecycle
> > > startApplication
> > > SEVERE: CDI Beans module deployment failed
> > > javax.enterprise.inject.UnsatisfiedResolutionException: Api type
> > >
> >
> [jsf.orderCustomerPointOfContact.pf_OrderCustomerPointOfContactController]
> > > is not found with the qualifiers
> > > Qualifiers: [@javax.enterprise.inject.Default()]
> > > for injection into Field Injection Point, field name :
> > >  orderCustomerPointOfContactController, Bean Owner :
> > [pf_OrdersController,
> > > Name:pf_ordersController, WebBeans Type:MANAGED, API
> > >
> > >
> >
> Types:[java.io.Serializable,java.lang.Object,jsf.orders.pf_OrdersController],
> > >
> > >
> >
> Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default,javax.inject.Named]]
> > > at
> > >
> > >
> >
> org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatisfiedResolutionException(InjectionExceptionUtil.java:77)
> > > at
> > >
> > >
> >
> org.apache.webbeans.container.InjectionResolver.getInjectionPointBean(InjectionResolver.java:238)
> > > at
> > >
> > >
> >
> org.apache.webbeans.util.WebBeansUtil.isPassivationCapableDependency(WebBeansUtil.java:1573)
> > > at
> > >
> > >
> >
> org.apache.webbeans.config.DeploymentValidationService.validatePassivationCapableDependencies(DeploymentValidationService.java:170)
> > > at
> > >
> > >
> >
> org.apache.webbeans.config.DeploymentValidationService.validatePassivationCapable(DeploymentValidationService.java:127)
> > > at
> > >
> > >
> >
> org.apache.webbeans.config.BeansDeployer.checkPassivationScope(BeansDeployer.java:748)
> > > at
> > >
> org.apache.webbeans.config.BeansDeployer.validate(BeansDeployer.java:428)
> > > at
> > >
> > >
> >
> org.apache.webbeans.config.BeansDeployer.validateInjectionPoints(BeansDeployer.java:390)
> > > at
> > org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:194)
> > > at
> > >
> > >
> >
> org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:182)
> > > at
> > >
> > >
> >
> org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:158)
> > > at org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:43)
> > > at
> > >
> > >
> >
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:793)
> > > at
> > >
> > >
> >
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:608)
> > > at
> > >
> > >
> >
> org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1111)
> > > at
> > >
> > >
> >
> org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:974)
> > > at
> > >
> > >
> >
> org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:124)
> > > at
> > >
> > >
> >
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
> > > at
> > >
> > >
> >
> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5269)
> > > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
> > > at
> > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
> > > at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
> > > at
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)
> > > at
> > >
> >
> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1654)
> > > at
> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> > > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> > > at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> > > at
> > >
> > >
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> > > at
> > >
> > >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> > > at java.lang.Thread.run(Thread.java:722)
> > >
> >
>

Reply via email to