users@jersey.java.net

Re: [Jersey] Using Guice with JAX-RS

From: Ido Tamir <tamir_at_imp.univie.ac.at>
Date: Wed, 1 Oct 2008 07:39:52 -0700 (PDT)

Hi,
thank you very much for the clear description. However I got huge
stacktraces from guice, and it
took me quite long to appreciate that it works nevertheless.
I think it works like this: guice just complains loudly that it is not
configured/ does not find anything appropriate and then jersey takes over.

Basically what I get is (see below, its too long, and I shortened it
considerably).
This comes up at startup of the servlet.

I have an additional question:

I get the expected reply from the normal helloworldresource with
  @GET
        @Produces("text/plain")
        public String getClichedMessage() {
                       return "Hello World";
        }

but the browser shows (besides "Hello World" in the satuts line:
localhost.localdomain contacted waiting for reply....

So is there some stream not closed or is this expected?

I could send you a zipped maven project which unfortunately
depends on http://maven.kamalook.de as a repository
for guice and warp-persist, because these are not on ibiblio.

thank you very much,
ido





---
com.google.inject.ConfigurationException: Error at
com.sun.jersey.impl.provider.entity.XMLRootElementProvider$App.<init>(XMLRootElementProvider.java:72)
Could not find a suitable constructor in
com.sun.jersey.impl.provider.entity.XMLRootElementProvider$App. Classes must
have either one (and only one) constructor annotated with @Inject or a
zero-argument constructor.
	at
com.google.inject.BinderImpl$RuntimeErrorHandler.handle(BinderImpl.java:426)
	at
com.google.inject.AbstractErrorHandler.handle(AbstractErrorHandler.java:30)
	at
com.google.inject.ConstructorInjector.findConstructorIn(ConstructorInjector.java:105)
	at
com.google.inject.ConstructorInjector.<init>(ConstructorInjector.java:37)
	at com.google.inject.InjectorImpl$7.create(InjectorImpl.java:601)
	at com.google.inject.InjectorImpl$7.create(InjectorImpl.java:594)
	at com.google.inject.util.ReferenceCache.create(ReferenceCache.java:53)
	at
com.google.inject.util.AbstractReferenceCache.internalCreate(AbstractReferenceCache.java:59)
	at
com.google.inject.util.AbstractReferenceCache.get(AbstractReferenceCache.java:116)
	at com.google.inject.InjectorImpl.getConstructor(InjectorImpl.java:765)
	at com.google.inject.InjectorImpl.getImplicitBinding(InjectorImpl.java:973)
	at com.google.inject.InjectorImpl.getInternalFactory(InjectorImpl.java:308)
	at com.google.inject.InjectorImpl.getProvider(InjectorImpl.java:693)
	at com.google.inject.InjectorImpl.getProvider(InjectorImpl.java:689)
	at com.google.inject.InjectorImpl.getInstance(InjectorImpl.java:728)
	at
at.ac.imp.fuge.guice.GuiceComponentProvider.getInstance(GuiceComponentProvider.java:31)
	at
at.ac.imp.fuge.guice.GuiceComponentProvider.getInstance(GuiceComponentProvider.java:39)
	at
com.sun.jersey.impl.application.WebApplicationImpl$AdaptingComponentProvider.getInstance(WebApplicationImpl.java:345)
	at
com.sun.jersey.impl.application.ComponentProviderCache.getComponent(ComponentProviderCache.java:187)
	at
com.sun.jersey.impl.application.ComponentProviderCache.getProvidersAndServices(ComponentProviderCache.java:122)
	at
com.sun.jersey.impl.application.MessageBodyFactory.getProviderMap(MessageBodyFactory.java:133)
	at
com.sun.jersey.impl.application.MessageBodyFactory.initReaders(MessageBodyFactory.java:107)
	at
com.sun.jersey.impl.application.MessageBodyFactory.init(MessageBodyFactory.java:102)
	at
com.sun.jersey.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:642)
	at at.ac.imp.fuge.guice.GuiceServlet.initiate(GuiceServlet.java:32)
	at
com.sun.jersey.spi.container.servlet.ServletContainer.load(ServletContainer.java:522)
	at
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:181)
	at
com.sun.grizzly.http.servlet.ServletAdapter.service(ServletAdapter.java:208)
	at
com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:148)
	at
com.sun.grizzly.http.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:621)
	at
com.sun.grizzly.http.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:552)
	at
com.sun.grizzly.http.DefaultProcessorTask.process(DefaultProcessorTask.java:800)
	at
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:152)
	at
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
	at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
	at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
	at com.sun.grizzly.http.SelectorThread$1.execute(SelectorThread.java:649)
	at
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:67)
	at
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:56)
	at com.sun.grizzly.util.WorkerThreadImpl.run(WorkerThreadImpl.java:169)
Error at
com.sun.jersey.impl.provider.entity.XMLRootElementProvider$App.<init>(XMLRootElementProvider.java:72)
Could not find a suitable constructor in
com.sun.jersey.impl.provider.entity.XMLRootElementProvider$App. Classes must
have either one (and only one) constructor annotated with @Inject or a
zero-argument constructor.
com.google.inject.ConfigurationException: Error at
com.sun.jersey.impl.provider.entity.XMLRootElementProvider$Text.<init>(XMLRootElementProvider.java:78)
Could not find a suitable constructor in
com.sun.jersey.impl.provider.entity.XMLRootElementProvider$Text. Classes
must have either one (and only one) constructor annotated with @Inject or a
zero-argument constructor.
	at
com.google.inject.BinderImpl$RuntimeErrorHandler.handle(BinderImpl.java:426)
	at
com.google.inject.AbstractErrorHandler.handle(AbstractErrorHandler.java:30)
	at
com.google.inject.ConstructorInjector.findConstructorIn(ConstructorInjector.java:105)
	at
com.google.inject.ConstructorInjector.<init>(ConstructorInjector.java:37)
	at com.google.inject.InjectorImpl$7.create(InjectorImpl.java:601)
	at com.google.inject.InjectorImpl$7.create(InjectorImpl.java:594)
	at com.google.inject.util.ReferenceCache.create(ReferenceCache.java:53)
	at
com.google.inject.util.AbstractReferenceCache.internalCreate(AbstractReferenceCache.java:59)
	at
com.google.inject.util.AbstractReferenceCache.get(AbstractReferenceCache.java:116)
	at com.google.inject.InjectorImpl.getConstructor(InjectorImpl.java:765)
	at com.google.inject.InjectorImpl.getImplicitBinding(InjectorImpl.java:973)
	at com.google.inject.InjectorImpl.getInternalFactory(InjectorImpl.java:308)
	at com.google.inject.InjectorImpl.getProvider(InjectorImpl.java:693)
	at com.google.inject.InjectorImpl.getProvider(InjectorImpl.java:689)
	at com.google.inject.InjectorImpl.getInstance(InjectorImpl.java:728)
	at
at.ac.imp.fuge.guice.GuiceComponentProvider.getInstance(GuiceComponentProvider.java:31)
	at
at.ac.imp.fuge.guice.GuiceComponentProvider.getInstance(GuiceComponentProvider.java:39)
-- 
View this message in context: http://n2.nabble.com/Using-Guice-with-JAX-RS-tp1127230p1131547.html
Sent from the Jersey mailing list archive at Nabble.com.