guice-servlet does not depend on hk2-api at all. Where are you
getting this dependency from?
Gili
On 11/10/2013 5:59 AM, Piers Powlesland wrote:
> Hi I've been using Jersey 2.0 with guice-servlet and guice versions
> 3.0 and decided to upgrade the jersey version but injection no longer
> works because the guice-servlet is relying upon hk2-api 2.1.88 but the
> hk2-api referenced in jersey versions later than 2 are at version
> 2.1.93 and up.
>
> The exact exception I am getting is below, and has to do with the fact
> that the constructor for AbstractActiveDescriptor has had an extra
> boolean parameter added to it. Does anyone have an idea of how I can
> resolve this and use guice servlet 3.0 alongside jersey 2+?
>
> Thanks
>
> Piers
>
> SEVERE: StandardWrapper.Throwable
> java.lang.NoSuchMethodError:
> org.glassfish.hk2.utilities.AbstractActiveDescriptor.<init>(Ljava/util/Set;Ljava/lang/Class;Ljava/lang/String;Ljava/util/Set;Lorg/glassfish/hk2/api/DescriptorType;Lorg/glassfish/hk2/api/DescriptorVisibility;ILjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/util/Map;)V
> at
> org.jvnet.hk2.internal.ConstantActiveDescriptor.<init>(ConstantActiveDescriptor.java:127)
> at
> org.jvnet.hk2.internal.Utilities.getLocatorDescriptor(Utilities.java:1070)
> at
> org.jvnet.hk2.external.generator.ServiceLocatorGeneratorImpl.initialize(ServiceLocatorGeneratorImpl.java:71)
> at
> org.jvnet.hk2.external.generator.ServiceLocatorGeneratorImpl.create(ServiceLocatorGeneratorImpl.java:96)
> at
> org.glassfish.hk2.internal.ServiceLocatorFactoryImpl.internalCreate(ServiceLocatorFactoryImpl.java:230)
> at
> org.glassfish.hk2.internal.ServiceLocatorFactoryImpl.create(ServiceLocatorFactoryImpl.java:202)
> at
> org.glassfish.jersey.internal.inject.Injections._createLocator(Injections.java:142)
> at
> org.glassfish.jersey.internal.inject.Injections.createLocator(Injections.java:137)
> at
> org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:272)
> at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:298)
> at
> org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:167)
> at
> org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:349)
> at javax.servlet.GenericServlet.init(GenericServlet.java:244)
> at
> org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
> at
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
> at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
> at
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015)
> at
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5302)
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:724)
>
> Oct 11, 2013 10:16:42 AM org.apache.catalina.core.StandardContext
> loadOnStartup
> SEVERE: Servlet / threw load() exception
> java.lang.NoSuchMethodError:
> org.glassfish.hk2.utilities.AbstractActiveDescriptor.<init>(Ljava/util/Set;Ljava/lang/Class;Ljava/lang/String;Ljava/util/Set;Lorg/glassfish/hk2/api/DescriptorType;Lorg/glassfish/hk2/api/DescriptorVisibility;ILjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/util/Map;)V
> at
> org.jvnet.hk2.internal.ConstantActiveDescriptor.<init>(ConstantActiveDescriptor.java:127)
> at
> org.jvnet.hk2.internal.Utilities.getLocatorDescriptor(Utilities.java:1070)
> at
> org.jvnet.hk2.external.generator.ServiceLocatorGeneratorImpl.initialize(ServiceLocatorGeneratorImpl.java:71)
> at
> org.jvnet.hk2.external.generator.ServiceLocatorGeneratorImpl.create(ServiceLocatorGeneratorImpl.java:96)
> at
> org.glassfish.hk2.internal.ServiceLocatorFactoryImpl.internalCreate(ServiceLocatorFactoryImpl.java:230)
> at
> org.glassfish.hk2.internal.ServiceLocatorFactoryImpl.create(ServiceLocatorFactoryImpl.java:202)
> at
> org.glassfish.jersey.internal.inject.Injections._createLocator(Injections.java:142)
> at
> org.glassfish.jersey.internal.inject.Injections.createLocator(Injections.java:137)
> at
> org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:272)
> at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:298)
> at
> org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:167)
> at
> org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:349)
> at javax.servlet.GenericServlet.init(GenericServlet.java:244)
> at
> org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
> at
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
> at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
> at
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015)
> at
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5302)
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:724)