Here is the real stack trace for Jersey 1.0:
java.lang.NullPointerException
at
com.sun.jersey.spi.container.ContainerRequest.<init>(ContainerRequest.java:153)
at
com.sun.jersey.impl.container.servlet.ServletContainerRequest.<init>(ServletContainerRequest.java:63)
at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:331)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at
com.wideplay.warp.servlet.ServletDefinition.doService(ServletDefinition.java:188)
at
com.wideplay.warp.servlet.ServletDefinition.service(ServletDefinition.java:115)
at
com.wideplay.warp.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:43)
at
com.wideplay.warp.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:50)
at
com.wideplay.warp.jpa.SessionPerRequestFilter.doFilter(SessionPerRequestFilter.java:52)
at
com.wideplay.warp.servlet.FilterDefinition.doFilter(FilterDefinition.java:101)
at
com.wideplay.warp.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:46)
at
com.wideplay.warp.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:52)
at com.wideplay.warp.servlet.WebFilter.doFilter(WebFilter.java:67)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at
com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
at
com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at
com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
I tracked this down to a bug in my Warp-Servlet configuration. I defined
GuiceServlet extends ServletContainer to handle Guice injection but then I
forgot to declare it as a @Singleton. For those of you familiar with
Warp-Servlet unintuitive behavior, it'll assume that the servlet is not a
singleton by default. As a result a new Servlet instance gets constructed
every time but init() only gets invoked once.
Again, very confusing, but this isn't a bug in Jersey. Sorry for the false
alarm. The above stack-trace should only occur if the servlet.service() is
invoked without a prior call to init().
Gili
--
View this message in context: http://n2.nabble.com/NPE-at-com.sun.jersey.spi.container.ContainerRequest-tp1365881p1365926.html
Sent from the Jersey mailing list archive at Nabble.com.