users@jersey.java.net

NPE thrown by ContainerRequest

From: NBW <emailnbw_at_gmail.com>
Date: Fri, 24 Sep 2010 13:18:46 -0400

So, I have a web app which includes Jersey 1.1.5.1 and works fine under
Glassfish v3 build 74.2. I grabbed the GFv3.1 nightly yesterday (9/23/2010)
to see if a bug I am seeing with EJB Timers in v3 has been fixed as
reported. In any event I deployed said webapp and fired things up. During
the course of the application running it receives a jersey client call and I
am seeing the following NPE generated:

[#|2010-09-24T13:06:21.171-0400|WARNING|glassfish3.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=80;_ThreadName=http-thread-pool-7070(4);|StandardWrapperValve[com.mycompany.foo.ws.rs.RESTApplication]:
PWC1406: Servlet.service() for
servlet com.mycompany.foo.ws.rs.RESTApplication threw exception
java.lang.NullPointerException
at
com.sun.jersey.spi.container.ContainerRequest.<init>(ContainerRequest.java:182)
at
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:383)
at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:497)
at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:684)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at
org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1522)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
at
com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
at
org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
at
com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:824)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:721)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1014)
at
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:220)
at
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at
com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:530)
at
com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:511)
at java.lang.Thread.run(Thread.java:619)
|#]

The RESTApplication class is simply:

@ApplicationPath("/rest")
public class RESTApplication extends Application {
}

I am guessing this has to do with an API change between 1.1.5.1 and 1.4-0.4
which it appears this build of GVv3.1 is using as reported by the
Administration Console's Installed Components screen. I checked the 1.4
User's Guide to see if there were any details that might have changed that I
need to take into account but it doesn't seem to have an example of using
the @ApplicationPath annotation.

Thoughts?

TIA,

-Noah