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
>

Reply via email to