Sorry misread the listener api you were using. Do you have a ready to run sample we can use to reproduce? Le 5 déc. 2014 20:37, "Lars-Fredrik Smedberg" <[email protected]> a écrit :
> Hi Romain > > What should I not do during the boot of the container? > > The @RequestScoped bean injecting the extension is not until it receives an > event triggered by a client request > > Regards > Lars-Fredrik > On Dec 5, 2014 3:45 PM, "Romain Manni-Bucau" <[email protected]> > wrote: > > > you shouldn't do it during the boot of the container. I guess that's > > the issue. What I don't get is why it doesn't fail more abruptally. > > > > > > Romain Manni-Bucau > > @rmannibucau > > http://www.tomitribe.com > > http://rmannibucau.wordpress.com > > https://github.com/rmannibucau > > > > > > 2014-12-05 15:40 GMT+01:00 Lars-Fredrik Smedberg <[email protected]>: > > > Romain, what I tried in my little tests was: > > > > > > - A class implementing ServletRequestListener that in > > > requestInitialized(...) fires a CDI event. > > > - Another class (@RequestScoped) consumes the event... > > > > > > Without any injection of the CDI Extension all work fine > > > > > > - I added a CDI Extension and when debugging I can see that the > extension > > > can observe the events postsed during startup. > > > - When I in the the @RequestScoped class that consumes the events > @Inject > > > the extension I get an error and a stack trace (at the bottom of the > > mail): > > > > > > If I only add the CDI Extension but not inject it in any bean I can see > > > that it (amongst other events) observes an AfterDeploymentValidation > > event. > > > > > > When injecting the CDI Extension to the bean mentioned above I not > > receive > > > the AfterDeploymentValidation event, the error happens before (the > > > extension observes BeforeBeanDiscovery, ProcessAnnotatedType and > > > AfterDeploymentValidation). > > > > > > Any ideas of what might be wrong? > > > > > > Regards > > > LF > > > > > > ---------------------- > > > > > > SEVERE: CDI Beans module deployment failed > > > org.apache.webbeans.exception.inject.DeploymentException: > > > javax.enterprise.inject.UnsatisfiedResolutionException: Api type > > > [test.JAXBContextExtension] is not found with the qualifiers > > > Qualifiers: [@javax.enterprise.inject.Default()] > > > for injection into Field Injection Point, field name : > > > jaxbContextExtension, Bean Owner : [ServiceRequestConsumer, Name:null, > > > WebBeans Type:MANAGED, API > > > Types:[java.lang.Object,test.ServiceRequestConsumer], > > > > Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default]] > > > at > > org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:215) > > > at > > > > > > org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:194) > > > at > > > > > > org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:160) > > > at org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:41) > > > at > > > > > > org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:797) > > > at > > > > > > org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:623) > > > at > > > > > > org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1248) > > > at > > > > > > org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1087) > > > at > > > > > > org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:130) > > > at > > > > > > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) > > > at > > > > > > org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) > > > at > > > > > > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378) > > > 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:649) > > > at > > > > > > org.apache.tomee.catalina.TomcatWebAppBuilder.deployWar(TomcatWebAppBuilder.java:648) > > > at > > > > > > org.apache.tomee.catalina.TomcatWebAppBuilder.deployWebApps(TomcatWebAppBuilder.java:618) > > > at > > > > > > org.apache.tomee.catalina.deployment.TomcatWebappDeployer.deploy(TomcatWebappDeployer.java:43) > > > at > org.apache.openejb.assembler.DeployerEjb.deploy(DeployerEjb.java:175) > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > at > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > > at > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > > at java.lang.reflect.Method.invoke(Method.java:601) > > > at > > > > > > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:192) > > > at > > > > > > org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:173) > > > at > > > > > > org.apache.openejb.security.internal.InternalSecurityInterceptor.invoke(InternalSecurityInterceptor.java:35) > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > at > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > > at > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > > at java.lang.reflect.Method.invoke(Method.java:601) > > > at > > > > > > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:192) > > > at > > > > > > org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:173) > > > at > > > > > > org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:181) > > > at > > > > > > org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:100) > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > at > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > > at > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > > at java.lang.reflect.Method.invoke(Method.java:601) > > > at > > > > > > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:192) > > > at > > > > > > org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:173) > > > at > > > > > > org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85) > > > at > > > > > > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:227) > > > at > > > > > > org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:194) > > > at > > > > > > org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:370) > > > at > > > > > > org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:181) > > > at > > > > > > org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:344) > > > at org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:240) > > > at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:86) > > > at > > > > > > org.apache.openejb.server.httpd.ServerServlet.service(ServerServlet.java:58) > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) > > > at > > > > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) > > > at > > > > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) > > > at > > > > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) > > > at > > > > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) > > > at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44) > > > at > > > > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) > > > at > > > > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) > > > at > > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) > > > at > > > > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) > > > at > > > > > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) > > > at > > > > > > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) > > > at > > > > > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) > > > at > > > > > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) > > > at > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > > > at > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > > > at > > > > > > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > > > at java.lang.Thread.run(Thread.java:722) > > > Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Api > > type > > > [test.JAXBContextExtension] is not found with the qualifiers > > > Qualifiers: [@javax.enterprise.inject.Default()] > > > for injection into Field Injection Point, field name : > > > jaxbContextExtension, Bean Owner : [ServiceRequestConsumer, Name:null, > > > WebBeans Type:MANAGED, API > > > Types:[java.lang.Object,test.ServiceRequestConsumer], > > > > Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default]] > > > at > > > > > > org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatisfiedResolutionException(InjectionExceptionUtil.java:60) > > > at > > > > > > org.apache.webbeans.container.InjectionResolver.checkInjectionPoint(InjectionResolver.java:195) > > > at > > > > > > org.apache.webbeans.container.BeanManagerImpl.validate(BeanManagerImpl.java:955) > > > at > > org.apache.webbeans.config.BeansDeployer.validate(BeansDeployer.java:491) > > > at > > > > > > org.apache.webbeans.config.BeansDeployer.validateInjectionPoints(BeansDeployer.java:422) > > > at > > org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:202) > > > ... 67 more > > > > > > > > > On Fri, Dec 5, 2014 at 2:24 PM, Romain Manni-Bucau < > > [email protected]> > > > wrote: > > > > > >> Hi > > >> > > >> seems ok yes > > >> > > >> > > >> Romain Manni-Bucau > > >> @rmannibucau > > >> http://www.tomitribe.com > > >> http://rmannibucau.wordpress.com > > >> https://github.com/rmannibucau > > >> > > >> > > >> 2014-12-05 14:15 GMT+01:00 Lars-Fredrik Smedberg <[email protected] > >: > > >> > Hi > > >> > > > >> > I'm running TomEE Plus 1.7.1 and I try to inject a CDI extension in > a > > >> > @RequestScoped bean but I get an error saying that no bean with > > @Default > > >> is > > >> > available for injection. > > >> > > > >> > Is this the right way of getting data collected in the extension > > >> available > > >> > to the application? > > >> > > > >> > Regards > > >> > Lars-Fredrik > > >> > > > > > > > > > > > > -- > > > Med vänlig hälsning / Best regards > > > > > > Lars-Fredrik Smedberg > > > > > > STATEMENT OF CONFIDENTIALITY: > > > The information contained in this electronic message and any > > > attachments to this message are intended for the exclusive use of the > > > address(es) and may contain confidential or privileged information. If > > > you are not the intended recipient, please notify Lars-Fredrik Smedberg > > > immediately at [email protected], and destroy all copies of this > > > message and any attachments. > > >
