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.