Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 4.0_b83
    • Fix Version/s: 4.0
    • Component/s: jax-rs
    • Labels:
      None

      Description

      It seems @Inject fails at random points in my application. This was not the case in a previous build. I get the strange exception below. The injection point is this:

      @Stateless
      @Path("/graph-traversal")
      public class GraphTraversalService {

      @Inject
      private GraphDao dao;

      The object injected is this:

      @ApplicationScoped
      public class GraphDao implements Serializable

      The most bizarre thing about this is that the injection works fine if I switch to @Singleton @Startup. If I were to venture a guess, this is some kind of strange class-loading issue.

      The application here demonstrates the problem: http://java.net/projects/cargotracker/downloads/download/cargotracker.zip.

      These are the steps to reproduce:

      • Build the app via Maven and deploy to GlassFish.
      • Open up a browser: http://localhost:8080/cargo-tracker/.
      • Click on booking and routing.
      • Click on book new Cargo.
      • Specify a sensible origin, destination and arrival date.
      • Click book.
      • Click route this cargo.
      • The page will blow up with the exception below.

      The most frustrating part of this is that it is very unpredictable, so you may have to do this a few times. Please advise.

      SEVERE: EJB5070: Exception creating stateless session bean : [GraphTraversalService]
      WARNING: EJB5184:A system exception occurred during an invocation on EJB GraphTraversalService, method: public java.util.List net.java.pathfinder.api.GraphTraversalService.findShortestPath(java.lang.String,java.lang.String,java.lang.String)
      WARNING: javax.ejb.EJBException: javax.ejb.EJBException: javax.ejb.CreateException: Could not create stateless EJB
      at com.sun.ejb.containers.StatelessSessionContainer._getContext(StatelessSessionContainer.java:435)
      at com.sun.ejb.containers.BaseContainer.getContext(BaseContainer.java:2516)
      at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1906)
      at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:210)
      at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
      at $Proxy272.findShortestPath(Unknown Source)
      at net.java.pathfinder.api._EJB31_GeneratedGraphTraversalServiceIntf__Bean_.findShortestPath(Unknown Source)
      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.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
      at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:125)
      at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:195)
      at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:91)
      at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:346)
      at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:341)
      at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:101)
      at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:217)
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:231)
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:227)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:275)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:257)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:227)
      at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
      at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:191)
      at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:819)
      at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:311)
      at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:372)
      at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335)
      at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:218)
      at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
      at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
      at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
      at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
      at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
      at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
      at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
      at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
      at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
      at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
      at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
      at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
      at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
      at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
      at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
      at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
      at java.lang.Thread.run(Thread.java:722)
      Caused by: javax.ejb.EJBException: javax.ejb.CreateException: Could not create stateless EJB
      at com.sun.ejb.containers.StatelessSessionContainer$SessionContextFactory.create(StatelessSessionContainer.java:700)
      at com.sun.ejb.containers.util.pool.NonBlockingPool.getObject(NonBlockingPool.java:246)
      at com.sun.ejb.containers.StatelessSessionContainer._getContext(StatelessSessionContainer.java:430)
      ... 56 more
      Caused by: javax.ejb.CreateException: Could not create stateless EJB
      at com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:514)
      at com.sun.ejb.containers.StatelessSessionContainer.access$000(StatelessSessionContainer.java:97)
      at com.sun.ejb.containers.StatelessSessionContainer$SessionContextFactory.create(StatelessSessionContainer.java:698)
      ... 58 more
      Caused by: A MultiException has 1 exceptions. They are:
      1. org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at Injectee(requiredType=GraphDao,parent=GraphTraversalService,qualifiers={}),position=-1,optional=false,self=false,unqualified=null,1350404804)
      at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:74)
      at org.jvnet.hk2.internal.Utilities.justInject(Utilities.java:771)
      at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:780)
      at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:770)
      at org.glassfish.jersey.gf.ejb.EjbComponentInterceptor.inject(EjbComponentInterceptor.java:69)
      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 com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:153)
      at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.init(SystemInterceptorProxy.java:125)
      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 com.sun.ejb.containers.interceptors.CallbackInterceptor.intercept(InterceptorManager.java:986)
      at com.sun.ejb.containers.interceptors.CallbackChainImpl.invokeNext(CallbackChainImpl.java:72)
      at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:412)
      at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:375)
      at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:1949)
      at com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:507)
      ... 60 more
      Caused by: org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at Injectee(requiredType=GraphDao,parent=GraphTraversalService,qualifiers={}),position=-1,optional=false,self=false,unqualified=null,1350404804)
      ... 81 more

        Issue Links

          Activity

          Hide
          shreedhar_ganapathy added a comment -

          -> JJ Snyder
          Could you please investigate this or reassign as appropriate?

          Show
          shreedhar_ganapathy added a comment - -> JJ Snyder Could you please investigate this or reassign as appropriate?
          Hide
          TangYong added a comment - - edited

          shreedhar,

          My suggestion is that this issue should firstly assign to Jersey because @Inject in GraphTraversalService does not use Weld to inject and instead, it used jsr330 and this should belong to integration between Jersey and Hk2.

          So, firstly should give jersey, maybe they will reassign to hk2.

          Thanks
          --Tang

          Show
          TangYong added a comment - - edited shreedhar, My suggestion is that this issue should firstly assign to Jersey because @Inject in GraphTraversalService does not use Weld to inject and instead, it used jsr330 and this should belong to integration between Jersey and Hk2. So, firstly should give jersey, maybe they will reassign to hk2. Thanks --Tang
          Hide
          TangYong added a comment -

          However, still having another possibility:

          This should use cdi to inject, however, while mixing jersey , jsr330, cdi into the same place liking GraphTraversalService, that is to say, in multi-container mixing scene, cdi has not any effect.

          After all, in user's app, hk2 injection should not take in charge of any injection.

          Thanks
          --Tang

          Show
          TangYong added a comment - However, still having another possibility: This should use cdi to inject, however, while mixing jersey , jsr330, cdi into the same place liking GraphTraversalService, that is to say, in multi-container mixing scene, cdi has not any effect. After all, in user's app, hk2 injection should not take in charge of any injection. Thanks --Tang
          Hide
          jjsnyder83 added a comment -

          Looks like an hk2/jersey bug.

          Show
          jjsnyder83 added a comment - Looks like an hk2/jersey bug.
          Hide
          Jakub Podlesak added a comment - - edited

          Reza, i can not access the test case app. Getting 404 from java.net. Also the cargotracker project is inaccessible for me. Can you please add me to the project or just send me the project zip file via e-mail? Thanks!

          Show
          Jakub Podlesak added a comment - - edited Reza, i can not access the test case app. Getting 404 from java.net. Also the cargotracker project is inaccessible for me. Can you please add me to the project or just send me the project zip file via e-mail? Thanks!
          Hide
          Jakub Podlesak added a comment -

          I can reproduce locally. This is indeed a bug in the Jersey JAX-RS/EJB integration layer.

          Show
          Jakub Podlesak added a comment - I can reproduce locally. This is indeed a bug in the Jersey JAX-RS/EJB integration layer.
          Hide
          reza_rahman added a comment -

          I'll send you the code ASAP anyways (in an email). There's multiple somewhat random places this happens, so it might be good if I can show you at least a few.

          Show
          reza_rahman added a comment - I'll send you the code ASAP anyways (in an email). There's multiple somewhat random places this happens, so it might be good if I can show you at least a few.
          Hide
          Jakub Podlesak added a comment -

          This has been fixed in the recently released Jersey 2.0-rc2 version, that should be available at the promoted maven.java.net repository.
          The new version of Jersey i am going to integrate to the GF main trunk today.

          Show
          Jakub Podlesak added a comment - This has been fixed in the recently released Jersey 2.0-rc2 version, that should be available at the promoted maven.java.net repository. The new version of Jersey i am going to integrate to the GF main trunk today.
          Hide
          Jakub Podlesak added a comment -

          Fixed with Jersey 2.0-rc2 integration (https://java.net/jira/browse/GLASSFISH-20385)

          Show
          Jakub Podlesak added a comment - Fixed with Jersey 2.0-rc2 integration ( https://java.net/jira/browse/GLASSFISH-20385 )
          Hide
          reza_rahman added a comment -

          So in the latest GlassFish build, it now works with @Stateless, but still fails for @RequestScoped (which should also work).

          Show
          reza_rahman added a comment - So in the latest GlassFish build, it now works with @Stateless, but still fails for @RequestScoped (which should also work).
          Hide
          Jakub Podlesak added a comment -

          So you got rid of EJB and inject directly into CDI. Did you get any error message or stack trace to share?

          Show
          Jakub Podlesak added a comment - So you got rid of EJB and inject directly into CDI. Did you get any error message or stack trace to share?
          Hide
          reza_rahman added a comment -

          Yes, that is exactly what I did. The error is virtually identical to the one I was getting for EJB. The exact stack trace is as follows:

          org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at Injectee(requiredType=GraphDao,parent=GraphTraversalService,qualifiers={}),position=-1,optional=false,self=false,unqualified=null,1969065709)
          at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:74)
          at org.jvnet.hk2.internal.Utilities.justInject(Utilities.java:771)
          at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:790)
          at org.glassfish.jersey.gf.cdi.CdiComponentProvider$1.inject(CdiComponentProvider.java:316)
          at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:158)
          at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:103)
          at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:93)
          at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79)
          at net.java.pathfinder.api.GraphTraversalService$Proxy$_$$_WeldClientProxy.findShortestPath(Unknown Source)
          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.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
          at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:125)
          at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:195)
          at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:91)
          at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:346)
          at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:341)
          at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:101)
          at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:224)
          at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
          at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
          at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
          at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
          at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
          at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
          at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:198)
          at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:946)
          at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:323)
          at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:372)
          at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335)
          at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:218)
          at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
          at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
          at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
          at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
          at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
          at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
          at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
          at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
          at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
          at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
          at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
          at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
          at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
          at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
          at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
          at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
          at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
          at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
          at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
          at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
          at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
          at java.lang.Thread.run(Thread.java:722)

          Show
          reza_rahman added a comment - Yes, that is exactly what I did. The error is virtually identical to the one I was getting for EJB. The exact stack trace is as follows: org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at Injectee(requiredType=GraphDao,parent=GraphTraversalService,qualifiers={}),position=-1,optional=false,self=false,unqualified=null,1969065709) at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:74) at org.jvnet.hk2.internal.Utilities.justInject(Utilities.java:771) at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:790) at org.glassfish.jersey.gf.cdi.CdiComponentProvider$1.inject(CdiComponentProvider.java:316) at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:158) at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:103) at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:93) at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79) at net.java.pathfinder.api.GraphTraversalService$Proxy$_$$_WeldClientProxy.findShortestPath(Unknown Source) 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.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:125) at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:195) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:91) at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:346) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:341) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:101) at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:224) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:267) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:198) at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:946) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:323) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:372) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:218) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544) at java.lang.Thread.run(Thread.java:722)
          Hide
          reza_rahman added a comment -

          Problems still remain.

          Show
          reza_rahman added a comment - Problems still remain.
          Hide
          Jakub Podlesak added a comment -

          Hi Reza,

          Tried to reproduce, and noticed the web application bundled some redundant dependencies (e.g. javax.inject was bundled twice in WEB-INF/lib).
          When i removed the redundancies, no injection exception occurs and now i am getting the following stack trace:

          javax.faces.el.EvaluationException: javax.ejb.EJBTransactionRolledbackException
          	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
          	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
          	at javax.faces.component.UIViewAction.broadcast(UIViewAction.java:559)
          	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
          	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
          	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
          	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
          	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
          	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
          	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
          	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
          	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
          	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
          	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
          	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
          	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
          	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
          	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
          	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
          	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
          	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
          	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
          	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
          	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
          	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
          	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
          	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
          	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
          	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
          	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
          	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
          	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
          	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
          	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
          	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
          	at java.lang.Thread.run(Thread.java:722)
          Caused by: javax.ejb.EJBTransactionRolledbackException
          	at com.sun.ejb.containers.BaseContainer.mapLocal3xException(BaseContainer.java:2279)
          	at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2060)
          	at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1979)
          	at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:220)
          	at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
          	at com.sun.proxy.$Proxy247.fetchRoutesForSpecification(Unknown Source)
          	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.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(Reflections.java:396)
          	at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:108)
          	at org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:56)
          	at org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(InjectionPointPropagatingEnterpriseTargetBeanInstance.java:63)
          	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:101)
          	at net.java.cargotracker.infrastructure.routing.RoutingService$-115538604$Proxy$_$$_Weld$EnterpriseProxy$.fetchRoutesForSpecification(Unknown Source)
          	at net.java.cargotracker.application.internal.DefaultBookingService.requestPossibleRoutesForCargo(DefaultBookingService.java:60)
          	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.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081)
          	at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153)
          	at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4695)
          	at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:630)
          	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
          	at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582)
          	at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:46)
          	at sun.reflect.GeneratedMethodAccessor81.invoke(Unknown Source)
          	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          	at java.lang.reflect.Method.invoke(Method.java:601)
          	at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
          	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
          	at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582)
          	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)
          	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140)
          	at sun.reflect.GeneratedMethodAccessor80.invoke(Unknown Source)
          	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          	at java.lang.reflect.Method.invoke(Method.java:601)
          	at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
          	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
          	at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)
          	at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4667)
          	at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4655)
          	at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:212)
          	at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
          	at com.sun.proxy.$Proxy246.requestPossibleRoutesForCargo(Unknown Source)
          	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.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(Reflections.java:396)
          	at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:108)
          	at org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:56)
          	at org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(InjectionPointPropagatingEnterpriseTargetBeanInstance.java:63)
          	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:101)
          	at net.java.cargotracker.application.internal.BookingService$-55291933$Proxy$_$$_Weld$EnterpriseProxy$.requestPossibleRoutesForCargo(Unknown Source)
          	at net.java.cargotracker.interfaces.booking.facade.internal.DefaultBookingServiceFacade.requestPossibleRoutesForCargo(DefaultBookingServiceFacade.java:90)
          	at net.java.cargotracker.interfaces.booking.web.ItinerarySelection.load(ItinerarySelection.java:59)
          	at net.java.cargotracker.interfaces.booking.web.ItinerarySelection$Proxy$_$$_WeldClientProxy.load(Unknown Source)
          	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 com.sun.el.parser.AstValue.invoke(AstValue.java:275)
          	at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)
          	at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
          	at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
          	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
          	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
          	... 35 more
          Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean
          	at com.sun.ejb.containers.EJBContainerTransactionManager.checkExceptionClientTx(EJBContainerTransactionManager.java:662)
          	at com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:507)
          	at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4475)
          	at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2009)
          	... 103 more
          Caused by: javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error
          	at org.glassfish.jersey.client.JerseyInvocation.convertToException(JerseyInvocation.java:904)
          	at org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:801)
          	at org.glassfish.jersey.client.JerseyInvocation.access$600(JerseyInvocation.java:88)
          	at org.glassfish.jersey.client.JerseyInvocation$3.call(JerseyInvocation.java:672)
          	at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
          	at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
          	at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
          	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:421)
          	at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:668)
          	at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:384)
          	at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:280)
          	at net.java.cargotracker.infrastructure.routing.ExternalRoutingService.fetchRoutesForSpecification(ExternalRoutingService.java:65)
          	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.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081)
          	at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153)
          	at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4695)
          	at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:630)
          	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
          	at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582)
          	at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:46)
          	at sun.reflect.GeneratedMethodAccessor81.invoke(Unknown Source)
          	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          	at java.lang.reflect.Method.invoke(Method.java:601)
          	at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
          	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
          	at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582)
          	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)
          	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140)
          	at sun.reflect.GeneratedMethodAccessor80.invoke(Unknown Source)
          	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          	at java.lang.reflect.Method.invoke(Method.java:601)
          	at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
          	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
          	at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)
          	at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4667)
          	at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4655)
          	at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:212)
          	... 101 more
          
          Show
          Jakub Podlesak added a comment - Hi Reza, Tried to reproduce, and noticed the web application bundled some redundant dependencies (e.g. javax.inject was bundled twice in WEB-INF/lib). When i removed the redundancies, no injection exception occurs and now i am getting the following stack trace: javax.faces.el.EvaluationException: javax.ejb.EJBTransactionRolledbackException at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) at javax.faces.component.UIViewAction.broadcast(UIViewAction.java:559) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544) at java.lang. Thread .run( Thread .java:722) Caused by: javax.ejb.EJBTransactionRolledbackException at com.sun.ejb.containers.BaseContainer.mapLocal3xException(BaseContainer.java:2279) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2060) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1979) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:220) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88) at com.sun.proxy.$Proxy247.fetchRoutesForSpecification(Unknown Source) 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.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(Reflections.java:396) at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:108) at org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:56) at org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(InjectionPointPropagatingEnterpriseTargetBeanInstance.java:63) at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:101) at net.java.cargotracker.infrastructure.routing.RoutingService$-115538604$Proxy$_$$_Weld$EnterpriseProxy$.fetchRoutesForSpecification(Unknown Source) at net.java.cargotracker.application.internal.DefaultBookingService.requestPossibleRoutesForCargo(DefaultBookingService.java:60) 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.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081) at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4695) at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:630) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822) at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582) at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:46) at sun.reflect.GeneratedMethodAccessor81.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822) at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582) at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163) at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140) at sun.reflect.GeneratedMethodAccessor80.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369) at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4667) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4655) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:212) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88) at com.sun.proxy.$Proxy246.requestPossibleRoutesForCargo(Unknown Source) 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.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(Reflections.java:396) at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:108) at org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:56) at org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(InjectionPointPropagatingEnterpriseTargetBeanInstance.java:63) at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:101) at net.java.cargotracker.application.internal.BookingService$-55291933$Proxy$_$$_Weld$EnterpriseProxy$.requestPossibleRoutesForCargo(Unknown Source) at net.java.cargotracker.interfaces.booking.facade.internal.DefaultBookingServiceFacade.requestPossibleRoutesForCargo(DefaultBookingServiceFacade.java:90) at net.java.cargotracker.interfaces.booking.web.ItinerarySelection.load(ItinerarySelection.java:59) at net.java.cargotracker.interfaces.booking.web.ItinerarySelection$Proxy$_$$_WeldClientProxy.load(Unknown Source) 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 com.sun.el.parser.AstValue.invoke(AstValue.java:275) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304) at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) ... 35 more Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean at com.sun.ejb.containers.EJBContainerTransactionManager.checkExceptionClientTx(EJBContainerTransactionManager.java:662) at com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:507) at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4475) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2009) ... 103 more Caused by: javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error at org.glassfish.jersey.client.JerseyInvocation.convertToException(JerseyInvocation.java:904) at org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:801) at org.glassfish.jersey.client.JerseyInvocation.access$600(JerseyInvocation.java:88) at org.glassfish.jersey.client.JerseyInvocation$3.call(JerseyInvocation.java:672) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:228) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:421) at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:668) at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:384) at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:280) at net.java.cargotracker.infrastructure.routing.ExternalRoutingService.fetchRoutesForSpecification(ExternalRoutingService.java:65) 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.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081) at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4695) at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:630) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822) at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582) at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:46) at sun.reflect.GeneratedMethodAccessor81.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822) at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582) at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163) at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140) at sun.reflect.GeneratedMethodAccessor80.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369) at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4667) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4655) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:212) ... 101 more
          Hide
          Jakub Podlesak added a comment -

          I can reproduce.

          The problem is as follows:

          Custom Jersey HK2 class analyser is utilised to skip injection points that are covered by CDI
          and should be skipped by Jersey provided HK2 service locator. In the above test case
          the Jersey HK2 class analyser is given a proxy type, net.java.pathfinder.api.GraphTraversalService$Proxy$_$$_WeldSubclass,
          instead of the original type, net.java.pathfinder.api.GraphTraversalService and provides a wrong set of injection points
          to be covered by Jersey.

          Not sure if this is a HK2 regression or not, but Jersey class analyzer should be more defensive.

          Show
          Jakub Podlesak added a comment - I can reproduce. The problem is as follows: Custom Jersey HK2 class analyser is utilised to skip injection points that are covered by CDI and should be skipped by Jersey provided HK2 service locator. In the above test case the Jersey HK2 class analyser is given a proxy type, net.java.pathfinder.api.GraphTraversalService$Proxy$_$$_WeldSubclass, instead of the original type, net.java.pathfinder.api.GraphTraversalService and provides a wrong set of injection points to be covered by Jersey. Not sure if this is a HK2 regression or not, but Jersey class analyzer should be more defensive.
          Hide
          jwells added a comment -

          That looks like a Weld proxy (see the _WeldSubclass at the end) not an HK2 proxy. Can you get the stack trace for where the class analyzer is given the proxy?

          Show
          jwells added a comment - That looks like a Weld proxy (see the _WeldSubclass at the end) not an HK2 proxy. Can you get the stack trace for where the class analyzer is given the proxy?
          Hide
          reza_rahman added a comment -

          I don't quite follow. If it helps, I can give you the application, just send me an email at reza.rahman@oracle.com.

          Show
          reza_rahman added a comment - I don't quite follow. If it helps, I can give you the application, just send me an email at reza.rahman@oracle.com.
          Hide
          Jakub Podlesak added a comment - - edited

          This has been fixed in Jersey 2.0 (re-spinned 2.0 release), and the new Jersey bits have been uploaded to the following repository:
          https://maven.java.net/content/groups/promoted

          No change is needed in GF workspace, as the Jersey version there is already set to 2.0 in nucleus/pom.xml

          Show
          Jakub Podlesak added a comment - - edited This has been fixed in Jersey 2.0 (re-spinned 2.0 release), and the new Jersey bits have been uploaded to the following repository: https://maven.java.net/content/groups/promoted No change is needed in GF workspace, as the Jersey version there is already set to 2.0 in nucleus/pom.xml
          Hide
          Jakub Podlesak added a comment -

          For John:

          Following please see the stack trace you asked for. I think i was wrong when assuming this could have been caused by a HK2 regression.
          I am struggling to reproduce the bug when only EJB/CDI/JAX-RS combination is being utilised (which is what Jersey internal tests are covering at the moment),
          as in such a case injection of an application scoped bean into a request scoped one does not trigger any weld proxy usage.

          java.lang.Exception: Stack trace
          at java.lang.Thread.dumpStack(Thread.java:1342)
          at org.glassfish.jersey.gf.cdi.InjecteeSkippingAnalyzer.getInitializerMethods(InjecteeSkippingAnalyzer.java:80)
          at org.jvnet.hk2.internal.Utilities.getInitMethods(Utilities.java:186)
          at org.jvnet.hk2.internal.Utilities.justInject(Utilities.java:757)
          at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:790)
          at org.glassfish.jersey.gf.cdi.CdiComponentProvider$1.inject(CdiComponentProvider.java:316)
          at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:158)
          at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:103)
          at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:93)
          at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79)
          at net.java.pathfinder.api.GraphTraversalService$Proxy$_$$_WeldClientProxy.findShortestPath(Unknown Source)
          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.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)

          Show
          Jakub Podlesak added a comment - For John: Following please see the stack trace you asked for. I think i was wrong when assuming this could have been caused by a HK2 regression. I am struggling to reproduce the bug when only EJB/CDI/JAX-RS combination is being utilised (which is what Jersey internal tests are covering at the moment), as in such a case injection of an application scoped bean into a request scoped one does not trigger any weld proxy usage. java.lang.Exception: Stack trace at java.lang.Thread.dumpStack(Thread.java:1342) at org.glassfish.jersey.gf.cdi.InjecteeSkippingAnalyzer.getInitializerMethods(InjecteeSkippingAnalyzer.java:80) at org.jvnet.hk2.internal.Utilities.getInitMethods(Utilities.java:186) at org.jvnet.hk2.internal.Utilities.justInject(Utilities.java:757) at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:790) at org.glassfish.jersey.gf.cdi.CdiComponentProvider$1.inject(CdiComponentProvider.java:316) at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:158) at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:103) at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:93) at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79) at net.java.pathfinder.api.GraphTraversalService$Proxy$_$$_WeldClientProxy.findShortestPath(Unknown Source) 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.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
          Hide
          Jakub Podlesak added a comment -

          Just re-built GF from scratch and verified the bug is not reproducible any more with the cargotracker application.

          Show
          Jakub Podlesak added a comment - Just re-built GF from scratch and verified the bug is not reproducible any more with the cargotracker application.
          Hide
          reza_rahman added a comment -

          Upon trying to test this out by upgrading my jersey dependencies to 2.0 against the latest GlassFish build, I get a much nastier error (below). I would guess that this is being caused by the fact that CDI is now scanning everything and failing because one of my Jersey dependencies is using @Inject. Do we have a solution for this? I am very worried what's going to happen when real users run into this?

          SEVERE: Exception during lifecycle processing
          org.glassfish.deployment.common.DeploymentException: CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [Set<Service>] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject com.google.common.util.concurrent.ServiceManager(Set<Service>)]
          at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:225)
          at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
          at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:328)
          at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:493)
          at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
          at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
          at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527)
          at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
          at java.security.AccessController.doPrivileged(Native Method)
          at javax.security.auth.Subject.doAs(Subject.java:356)
          at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522)
          at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
          at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
          at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
          at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
          at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
          at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
          at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
          at org.glassfish.grizzly.http.server.StaticHttpHandler.service(StaticHttpHandler.java:297)
          at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
          at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
          at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
          at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
          at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
          at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
          at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
          at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
          at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
          at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
          at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
          at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
          at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
          at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
          at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
          at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
          at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
          at java.lang.Thread.run(Thread.java:722)
          Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Set<Service>] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject com.google.common.util.concurrent.ServiceManager(Set<Service>)]
          at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:403)
          at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:325)
          at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:177)
          at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:208)
          at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:519)
          at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:505)
          at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:480)
          at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:536)
          at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:216)
          ... 36 more

          My dependencies:

          <dependency>
          <groupId>org.glassfish.jersey.containers</groupId>
          <artifactId>jersey-container-servlet-core</artifactId>
          <version>2.0</version>
          <type>jar</type>
          <scope>provided</scope>
          </dependency>
          <dependency>
          <groupId>org.glassfish.jersey.media</groupId>
          <artifactId>jersey-media-moxy</artifactId>
          <version>2.0</version>
          <type>jar</type>
          </dependency>

          Show
          reza_rahman added a comment - Upon trying to test this out by upgrading my jersey dependencies to 2.0 against the latest GlassFish build, I get a much nastier error (below). I would guess that this is being caused by the fact that CDI is now scanning everything and failing because one of my Jersey dependencies is using @Inject. Do we have a solution for this? I am very worried what's going to happen when real users run into this? SEVERE: Exception during lifecycle processing org.glassfish.deployment.common.DeploymentException: CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [Set<Service>] with qualifiers [@Default] at injection point [ [BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject com.google.common.util.concurrent.ServiceManager(Set<Service>)] at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:225) at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131) at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:328) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:493) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219) at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:356) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423) at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108) at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762) at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674) at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534) at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224) at org.glassfish.grizzly.http.server.StaticHttpHandler.service(StaticHttpHandler.java:297) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544) at java.lang.Thread.run(Thread.java:722) Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Set<Service>] with qualifiers [@Default] at injection point [ [BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject com.google.common.util.concurrent.ServiceManager(Set<Service>)] at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:403) at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:325) at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:177) at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:208) at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:519) at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:505) at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:480) at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:536) at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:216) ... 36 more My dependencies: <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet-core</artifactId> <version>2.0</version> <type>jar</type> <scope>provided</scope> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-moxy</artifactId> <version>2.0</version> <type>jar</type> </dependency>
          Hide
          reza_rahman added a comment -

          Please advise on this. This has to be a big issue unless I am doing something seriously wrong.

          Show
          reza_rahman added a comment - Please advise on this. This has to be a big issue unless I am doing something seriously wrong.
          Hide
          Jakub Podlesak added a comment -

          Could you please change scope of all Jersey dependencies to provided, so that Jersey jars do not end up bundled in the application war file?
          What happens if you re-deploy?

          Show
          Jakub Podlesak added a comment - Could you please change scope of all Jersey dependencies to provided, so that Jersey jars do not end up bundled in the application war file? What happens if you re-deploy?
          Hide
          Jakub Podlesak added a comment -

          Also please see my earlier comment from May 7. Your should avoid packaging multiple versions of the same library (javax.inject).

          Show
          Jakub Podlesak added a comment - Also please see my earlier comment from May 7. Your should avoid packaging multiple versions of the same library (javax.inject).
          Hide
          Jakub Podlesak added a comment -

          This is what you need to bundle:

          %unzip -l target/cargo-tracker-1.0-SNAPSHOT.war| grep jar
               2943  04-11-13 11:53   WEB-INF/ejb-jar.xml
             315805  02-28-13 20:04   WEB-INF/lib/commons-lang3-3.1.jar
          

          this is what was bundled in the original app, most of it should be avoided:

          %unzip -l target/cargo-tracker-1.0-SNAPSHOT.war| grep jar
               2943  04-11-13 11:53   WEB-INF/ejb-jar.xml
             309967  02-28-13 19:57   WEB-INF/lib/asm-all-repackaged-2.1.59.jar
             282844  02-28-13 19:57   WEB-INF/lib/cglib-2.1.59.jar
             315805  02-28-13 20:04   WEB-INF/lib/commons-lang3-3.1.jar
            1891102  02-28-13 17:40   WEB-INF/lib/guava-13.0.jar
             111974  02-28-13 19:57   WEB-INF/lib/hk2-api-2.1.59.jar
             121693  02-28-13 19:57   WEB-INF/lib/hk2-locator-2.1.59.jar
              51525  02-28-13 19:57   WEB-INF/lib/hk2-utils-2.1.59.jar
              26093  04-11-13 18:30   WEB-INF/lib/javax.annotation-api-1.2-b01.jar
               2497  02-28-13 17:29   WEB-INF/lib/javax.inject-1.jar
               6616  02-28-13 19:57   WEB-INF/lib/javax.inject-2.1.59.jar
             108240  02-28-13 17:39   WEB-INF/lib/javax.ws.rs-api-2.0-m16.jar
             547166  02-28-13 17:39   WEB-INF/lib/jersey-common-2.0-m12-1.jar
              11329  02-28-13 18:39   WEB-INF/lib/jersey-media-moxy-2.0-m12-1.jar
             191807  02-28-13 19:58   WEB-INF/lib/org.eclipse.persistence.antlr-2.3.2.jar
             257816  02-28-13 19:58   WEB-INF/lib/org.eclipse.persistence.asm-3.3.1.v201206041142.jar
            4873015  02-28-13 19:59   WEB-INF/lib/org.eclipse.persistence.core-2.5.0-M6.jar
             471677  02-28-13 19:59   WEB-INF/lib/org.eclipse.persistence.moxy-2.5.0-M6.jar
              20235  02-28-13 17:29   WEB-INF/lib/osgi-resource-locator-1.0.1.jar
          
          Show
          Jakub Podlesak added a comment - This is what you need to bundle: %unzip -l target/cargo-tracker-1.0-SNAPSHOT.war| grep jar 2943 04-11-13 11:53 WEB-INF/ejb-jar.xml 315805 02-28-13 20:04 WEB-INF/lib/commons-lang3-3.1.jar this is what was bundled in the original app, most of it should be avoided: %unzip -l target/cargo-tracker-1.0-SNAPSHOT.war| grep jar 2943 04-11-13 11:53 WEB-INF/ejb-jar.xml 309967 02-28-13 19:57 WEB-INF/lib/asm-all-repackaged-2.1.59.jar 282844 02-28-13 19:57 WEB-INF/lib/cglib-2.1.59.jar 315805 02-28-13 20:04 WEB-INF/lib/commons-lang3-3.1.jar 1891102 02-28-13 17:40 WEB-INF/lib/guava-13.0.jar 111974 02-28-13 19:57 WEB-INF/lib/hk2-api-2.1.59.jar 121693 02-28-13 19:57 WEB-INF/lib/hk2-locator-2.1.59.jar 51525 02-28-13 19:57 WEB-INF/lib/hk2-utils-2.1.59.jar 26093 04-11-13 18:30 WEB-INF/lib/javax.annotation-api-1.2-b01.jar 2497 02-28-13 17:29 WEB-INF/lib/javax.inject-1.jar 6616 02-28-13 19:57 WEB-INF/lib/javax.inject-2.1.59.jar 108240 02-28-13 17:39 WEB-INF/lib/javax.ws.rs-api-2.0-m16.jar 547166 02-28-13 17:39 WEB-INF/lib/jersey-common-2.0-m12-1.jar 11329 02-28-13 18:39 WEB-INF/lib/jersey-media-moxy-2.0-m12-1.jar 191807 02-28-13 19:58 WEB-INF/lib/org.eclipse.persistence.antlr-2.3.2.jar 257816 02-28-13 19:58 WEB-INF/lib/org.eclipse.persistence.asm-3.3.1.v201206041142.jar 4873015 02-28-13 19:59 WEB-INF/lib/org.eclipse.persistence.core-2.5.0-M6.jar 471677 02-28-13 19:59 WEB-INF/lib/org.eclipse.persistence.moxy-2.5.0-M6.jar 20235 02-28-13 17:29 WEB-INF/lib/osgi-resource-locator-1.0.1.jar
          Hide
          reza_rahman added a comment -

          OK, changing the Jersey dependencies to provided seems to make things work fine overall. I am closing this bug. As to your previous comments on dependencies, I really didn't understand what you meant. I simply cut-pasted the pom example from Jersey. Perhaps those examples should be altered to take GlassFish into account?

          Show
          reza_rahman added a comment - OK, changing the Jersey dependencies to provided seems to make things work fine overall. I am closing this bug. As to your previous comments on dependencies, I really didn't understand what you meant. I simply cut-pasted the pom example from Jersey. Perhaps those examples should be altered to take GlassFish into account?
          Hide
          Jakub Podlesak added a comment -

          Thanks for the quick response!
          I think we should do a better job in documenting Jersey examples.

          Show
          Jakub Podlesak added a comment - Thanks for the quick response! I think we should do a better job in documenting Jersey examples.
          Hide
          reza_rahman added a comment -

          I am reopening this because I am seeing these same sorts of problems resurface on the release version of GlassFish again. The attached zip should demonstrate the new issues. In one case, I can't inject a default scoped bean into an EJB while request scoped and application scoped works. In another case, @Inject won't work for injecting and EJB while @EJB works. These injection issues seem to be specific to Jersey.

          Show
          reza_rahman added a comment - I am reopening this because I am seeing these same sorts of problems resurface on the release version of GlassFish again. The attached zip should demonstrate the new issues. In one case, I can't inject a default scoped bean into an EJB while request scoped and application scoped works. In another case, @Inject won't work for injecting and EJB while @EJB works. These injection issues seem to be specific to Jersey.
          Hide
          reza_rahman added a comment -

          New attachment demonstrating injection strangeness in the GlassFish release.

          Show
          reza_rahman added a comment - New attachment demonstrating injection strangeness in the GlassFish release.
          Hide
          reza_rahman added a comment -

          This is my bad - adding beans.xml->bean-discovery-mode="all" solved the new injection issues.

          Show
          reza_rahman added a comment - This is my bad - adding beans.xml->bean-discovery-mode="all" solved the new injection issues.
          Hide
          HankCa added a comment -

          Could the documentation at https://jersey.java.net/documentation/latest/media.html#json.moxy be updated to have the scope of jersey-media-moxy be provided. It should say:

          <dependency>
              <groupId>org.glassfish.jersey.media</groupId>
              <artifactId>jersey-media-moxy</artifactId>
              <version>2.3.1</version>
              <scope>provided</scope>
          </dependency>
          
          Show
          HankCa added a comment - Could the documentation at https://jersey.java.net/documentation/latest/media.html#json.moxy be updated to have the scope of jersey-media-moxy be provided. It should say: <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-moxy</artifactId> <version>2.3.1</version> <scope>provided</scope> </dependency>

            People

            • Assignee:
              Jakub Podlesak
              Reporter:
              reza_rahman
            • Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: