Hi Did you get chance to investigate this issue further ? Cheers, Sergey
On Wed, Apr 27, 2011 at 10:36 AM, Sergey Beryozkin <[email protected]> wrote: > 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 >
