Hi I've looked at the stack trace and realized the issue is to do with the cached InputStream being equal to null. I'm not sure why it is happening but I suspect that the fact the JAX-RS server acts as a client has something to do with it. It looks as if it 'inherits' some of the state from the outbound call that it makes.
Is there any chance that you can debug it ? Alternatively, please provide a test case (maven or ant based, or a war, I can add CXF libs to it myself) thanks, Sergey On Wed, Apr 27, 2011 at 4:48 AM, jaybytez <[email protected]> wrote: > Thanks for your help. > > I modified the method to return a String: > > @GET > @Path("/{id}") > public String getSponsorLookupCodes(@PathParam("id") String serviceCode) > { > System.out.println("serviceCode - " + serviceCode); > XStream xstream = new XStream(new JsonHierarchicalStreamDriver()); > xstream.alias(ServiceCode.class.getSimpleName(), ServiceCode.class); > ServiceCode code = > serviceCodeLookupBusinessService.getServiceCode(serviceCode); > System.out.println("code - " + code); > System.out.println("json code - " + xstream.toXML(code)); > return xstream.toXML(code); > } > > Even though the return says xstream.toXML, we are using XStreams > functionality to return JSON by instantiating new > JsonHierarchicalStreamDriver(). > > The interesting part is that I am attempting to register multiple Spring > Beans as serviceBeans, but when I make my REST/GET Request, the class throws > the NullPointer only on the return value (since it successfully logged the > value it is going to return)...but the NullPointer stack trace shows a > namespace to the wrong Class (which has a different Path annotation). > > java.lang.NullPointerException > at org.apache.cxf.helpers.IOUtils.copy(IOUtils.java:126) > at org.apache.cxf.helpers.IOUtils.copy(IOUtils.java:103) > at > org.apache.cxf.io.DelegatingInputStream.cacheInput(DelegatingInputStream.java:54) > at > org.apache.cxf.transport.http.AbstractHTTPDestination$1.cacheInput(AbstractHTTPDestination.java:305) > at > org.apache.cxf.transport.http.AbstractHTTPDestination.cacheInput(AbstractHTTPDestination.java:519) > at > org.apache.cxf.transport.http.AbstractHTTPDestination.flushHeaders(AbstractHTTPDestination.java:531) > at > org.apache.cxf.transport.http.AbstractHTTPDestination.flushHeaders(AbstractHTTPDestination.java:524) > at > org.apache.cxf.transport.http.AbstractHTTPDestination$WrappedOutputStream.onFirstWrite(AbstractHTTPDestination.java:659) > at > org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) > at > org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:55) > at > org.apache.cxf.jaxrs.provider.PrimitiveTextProvider.writeTo(PrimitiveTextProvider.java:70) > at > org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.serializeMessage(JAXRSOutInterceptor.java:256) > at > org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.processResponse(JAXRSOutInterceptor.java:144) > at > org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JAXRSOutInterceptor.java:83) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) > at > org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:77) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) > at > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113) > at > org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97) > at > org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:461) > at > org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149) > at > org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148) > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179) > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:108) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159) > at > com.day.j2ee.servletengine.ServletRuntimeEnvironment.service(ServletRuntimeEnvironment.java:228) > at > com.day.j2ee.servletengine.RequestDispatcherImpl.doFilter(RequestDispatcherImpl.java:315) > at > com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:334) > at > com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:378) > at > com.day.j2ee.servletengine.ServletHandlerImpl.execute(ServletHandlerImpl.java:313) > at > com.day.j2ee.servletengine.DefaultThreadPool$DequeueThread.run(DefaultThreadPool.java:134) > at java.lang.Thread.run(Thread.java:619) > Apr 26, 2011 8:39:14 PM org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor > writeResponseErrorMessage > WARNING: Error serializing the response, please check the server logs, > response class : String. > Apr 26, 2011 8:39:14 PM org.apache.cxf.phase.PhaseInterceptorChain > doDefaultLogging > WARNING: Interceptor for > {http://facade.apps.foo.com/}CodeLookupUtilityResource has thrown exception, > unwinding now > java.lang.NullPointerException > at org.apache.cxf.helpers.IOUtils.copy(IOUtils.java:126) > at org.apache.cxf.helpers.IOUtils.copy(IOUtils.java:103) > at > org.apache.cxf.io.DelegatingInputStream.cacheInput(DelegatingInputStream.java:54) > at > org.apache.cxf.transport.http.AbstractHTTPDestination$1.cacheInput(AbstractHTTPDestination.java:305) > at > org.apache.cxf.transport.http.AbstractHTTPDestination.cacheInput(AbstractHTTPDestination.java:519) > at > org.apache.cxf.transport.http.AbstractHTTPDestination.flushHeaders(AbstractHTTPDestination.java:531) > at > org.apache.cxf.transport.http.AbstractHTTPDestination.flushHeaders(AbstractHTTPDestination.java:524) > at > org.apache.cxf.transport.http.AbstractHTTPDestination$WrappedOutputStream.onFirstWrite(AbstractHTTPDestination.java:659) > at > org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) > at > org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:55) > at > org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.writeResponseErrorMessage(JAXRSOutInterceptor.java:377) > at > org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleWriteException(JAXRSOutInterceptor.java:362) > at > org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.serializeMessage(JAXRSOutInterceptor.java:281) > at > org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.processResponse(JAXRSOutInterceptor.java:144) > at > org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JAXRSOutInterceptor.java:83) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) > at > org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:77) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) > at > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113) > at > org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97) > at > org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:461) > at > org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149) > at > org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148) > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179) > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:108) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159) > at > com.day.j2ee.servletengine.ServletRuntimeEnvironment.service(ServletRuntimeEnvironment.java:228) > at > com.day.j2ee.servletengine.RequestDispatcherImpl.doFilter(RequestDispatcherImpl.java:315) > at > com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:334) > at > com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:378) > at > com.day.j2ee.servletengine.ServletHandlerImpl.execute(ServletHandlerImpl.java:313) > at > com.day.j2ee.servletengine.DefaultThreadPool$DequeueThread.run(DefaultThreadPool.java:134) > at java.lang.Thread.run(Thread.java:619) > Apr 26, 2011 8:39:14 PM org.apache.cxf.phase.PhaseInterceptorChain > doDefaultLogging > WARNING: Interceptor for > {http://facade.apps.foo.com/}CodeLookupUtilityResource has thrown exception, > unwinding now > java.lang.NullPointerException > at org.apache.cxf.helpers.IOUtils.copy(IOUtils.java:126) > at org.apache.cxf.helpers.IOUtils.copy(IOUtils.java:103) > at > org.apache.cxf.io.DelegatingInputStream.cacheInput(DelegatingInputStream.java:54) > at > org.apache.cxf.transport.http.AbstractHTTPDestination$1.cacheInput(AbstractHTTPDestination.java:305) > at > org.apache.cxf.transport.http.AbstractHTTPDestination.cacheInput(AbstractHTTPDestination.java:519) > at > org.apache.cxf.transport.http.AbstractHTTPDestination.flushHeaders(AbstractHTTPDestination.java:531) > at > org.apache.cxf.transport.http.AbstractHTTPDestination.flushHeaders(AbstractHTTPDestination.java:524) > at > org.apache.cxf.transport.http.AbstractHTTPDestination$WrappedOutputStream.onFirstWrite(AbstractHTTPDestination.java:659) > at > org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) > at com.ctc.wstx.io.UTF8Writer.flush(UTF8Writer.java:100) > at > com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:225) > at com.ctc.wstx.sw.BaseStreamWriter.flush(BaseStreamWriter.java:276) > at > org.apache.cxf.binding.xml.interceptor.XMLFaultOutInterceptor.handleMessage(XMLFaultOutInterceptor.java:85) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) > at > org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:99) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:315) > at > org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:77) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) > at > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113) > at > org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97) > at > org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:461) > at > org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149) > at > org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148) > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179) > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:108) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159) > at > com.day.j2ee.servletengine.ServletRuntimeEnvironment.service(ServletRuntimeEnvironment.java:228) > at > com.day.j2ee.servletengine.RequestDispatcherImpl.doFilter(RequestDispatcherImpl.java:315) > at > com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:334) > at > com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:378) > at > com.day.j2ee.servletengine.ServletHandlerImpl.execute(ServletHandlerImpl.java:313) > at > com.day.j2ee.servletengine.DefaultThreadPool$DequeueThread.run(DefaultThreadPool.java:134) > at java.lang.Thread.run(Thread.java:619) > > Thanks....jay > > -- > View this message in context: > http://cxf.547215.n5.nabble.com/IOUtils-throws-NullPointerException-JAX-RS-Response-tp4338982p4342671.html > Sent from the cxf-user mailing list archive at Nabble.com. > -- Sergey Beryozkin Application Integration Division of Talend http://sberyozkin.blogspot.com
