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.
