users@jersey.java.net

[Jersey] Re: _at_PerSession gives injection error?

From: Martynas Jusevičius <martynas_at_graphity.org>
Date: Wed, 12 Sep 2012 15:48:15 +0300

I wonder what the purpose of this mailing list is if I haven't
received any replies to my 3 last emails regarding issues with Jersey?

Martynas

On Mon, Sep 10, 2012 at 12:21 AM, Martynas Jusevičius
<martynas_at_graphity.org> wrote:
> Hey,
>
> using Jersey 1.9 and I'm having a problem very similar to this one:
> http://java.net/projects/jersey/lists/users/archive/2011-01/message/191
>
> Seems that when @PerSession is used, @Context fails to inject resource
> constructor params (works fine without @PerSession):
>
> Rgs 10, 2012 12:19:24 AM com.sun.jersey.spi.inject.Errors processErrorMessages
> SEVERE: The following errors and warnings have been detected with
> resource and/or provider classes:
> SEVERE: Missing dependency for constructor public
> eu.refstock.resource.OrdersResource(javax.ws.rs.core.UriInfo,javax.ws.rs.core.Request,java.util.Locale)
> at parameter index 2
> Rgs 10, 2012 12:19:24 AM org.apache.catalina.core.ApplicationContext log
> SEVERE: StandardWrapper.Throwable
> com.sun.jersey.spi.inject.Errors$ErrorMessagesException
> at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
> at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
> at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:771)
> at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:766)
> at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:488)
> at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:318)
> at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:609)
> at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:210)
> at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
> at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
> at javax.servlet.GenericServlet.init(GenericServlet.java:160)
> 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.allocate(StandardWrapper.java:857)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
> at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1805)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
>
>
> The OrdersResource code follows:
>
> @Path("orders")
> @PerSession
> public class OrdersResource extends Resource
> {
> private Model orders = ModelFactory.createDefaultModel();
>
> private static final Logger log =
> LoggerFactory.getLogger(OrdersResource.class);
>
> public OrdersResource(@Context UriInfo uriInfo, @Context Request req,
> @QueryParam("lang") @DefaultValue("en") Locale locale)
> {
> super(uriInfo, req, locale);
> }
>
> @Override
> public Model getModel()
> {
> return orders;
> }
>
> @POST
> @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
> @Override
> public Response post(Model order)
> {
> log.debug("POSTed order Model: {}", order);
>
> orders.add(order);
>
> return super.getResponse();
> }
>
> }
>
> Martynas
> graphity.org