You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Benson Margulies <bi...@gmail.com> on 2011/11/13 02:12:13 UTC
Exception provider registration apparently ineffectual
I seem to have run into a problem with exception providers in 2.5.0.
Am I confused? Should I file a JIRA?
In my context XML:
<jaxrs:server id="services" address="/">
<jaxrs:inInterceptors>
<ref bean="logInbound"/>
</jaxrs:inInterceptors>
<jaxrs:serviceBeans>
<ref bean="document-service-impl" />
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>
<bean class="com.basistech.rlp.ws.EofExceptionProvider"/>
</jaxrs:providers>
</jaxrs:server>
Yet:
2011-11-12 20:09:24,435 ["http-bio-15000"-exec-1] ERROR
org.apache.cxf.jaxrs.utils.JAXRSUtils - Error deserializing input
stream into target class PlainTextInputOptions, content type :
application/json
2011-11-12 20:09:24,437 ["http-bio-15000"-exec-1] WARN
org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper -
WebApplicationException has been caught : No content to map to Object
due to end of input
2011-11-12 20:09:24,438 ["http-bio-15000"-exec-1] DEBUG
org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper - No content
to map to Object due to end of input
javax.ws.rs.WebApplicationException: java.io.EOFException: No content
to map to Object due to end of input
at org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1040)
at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:612)
at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:577)
at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:236)
at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:88)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:123)
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:206)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:126)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:184)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:112)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:163)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.io.EOFException: No content to map to Object due to end of input
at org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2437)
at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2370)
at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1166)
at org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:410)
at org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1032)
... 30 more
Re: Exception provider registration apparently ineffectual
Posted by Sergey Beryozkin <sb...@gmail.com>.
OK, I'll have a look, thanks
Sergey
On 14/11/11 19:07, Benson Margulies wrote:
> I hit other problems on trunk that I filed in a JIRA.
>
> On Mon, Nov 14, 2011 at 12:06 PM, Sergey Beryozkin<sb...@gmail.com> wrote:
>> Hi Benson
>>
>> On 14/11/11 15:33, Benson Margulies wrote:
>>>
>>> Sergey,
>>>
>>> I'm going to build you a testcase for this
>>
>> I hope it is sorted out now, I was not really sure though how to update a
>> Jackson based test to reproduce this issue, please try the trunk snapshot
>> when you get a chance; I just updated the code to check for mappers before
>> wrapping IOExceptions, so it should fix it
>>
>>> and my 'disappearing JSON'
>>> mystery.
>>
>> Please do, thanks
>> Sergey
>>
>>> But I got distracted by building an archetype for JAX-RS
>>> first. So it will be another day or two.
>>>
>>> --benson
>>>
>>>
>>> On Mon, Nov 14, 2011 at 4:36 AM, Sergey Beryozkin<sb...@gmail.com>
>>> wrote:
>>>>
>>>> I think it is a bug, as at the moment all the exceptions thrown from
>>>> MessageBodyReaders are wrapped in WebApplicationException, without giving
>>>> a
>>>> chance to custom IOException handlers, I think we had a similar query
>>>> recently...
>>>>
>>>> You can provide your own WebApplicationException mapper and get to the
>>>> cause
>>>> of it in that mapper, but I agree that a fix is needed anyway,
>>>>
>>>> Sergey
>>>>
>>>> On 13/11/11 01:12, Benson Margulies wrote:
>>>>>
>>>>> I seem to have run into a problem with exception providers in 2.5.0.
>>>>> Am I confused? Should I file a JIRA?
>>>>>
>>>>> In my context XML:
>>>>>
>>>>> <jaxrs:server id="services" address="/">
>>>>> <jaxrs:inInterceptors>
>>>>> <ref bean="logInbound"/>
>>>>> </jaxrs:inInterceptors>
>>>>> <jaxrs:serviceBeans>
>>>>> <ref bean="document-service-impl" />
>>>>> </jaxrs:serviceBeans>
>>>>> <jaxrs:providers>
>>>>> <bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>
>>>>> <bean class="com.basistech.rlp.ws.EofExceptionProvider"/>
>>>>> </jaxrs:providers>
>>>>> </jaxrs:server>
>>>>>
>>>>> Yet:
>>>>>
>>>>> 2011-11-12 20:09:24,435 ["http-bio-15000"-exec-1] ERROR
>>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils - Error deserializing input
>>>>> stream into target class PlainTextInputOptions, content type :
>>>>> application/json
>>>>> 2011-11-12 20:09:24,437 ["http-bio-15000"-exec-1] WARN
>>>>> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper -
>>>>> WebApplicationException has been caught : No content to map to Object
>>>>> due to end of input
>>>>> 2011-11-12 20:09:24,438 ["http-bio-15000"-exec-1] DEBUG
>>>>> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper - No content
>>>>> to map to Object due to end of input
>>>>> javax.ws.rs.WebApplicationException: java.io.EOFException: No content
>>>>> to map to Object due to end of input
>>>>> at
>>>>>
>>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1040)
>>>>> at
>>>>>
>>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:612)
>>>>> at
>>>>>
>>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:577)
>>>>> at
>>>>>
>>>>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:236)
>>>>> at
>>>>>
>>>>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:88)
>>>>> at
>>>>>
>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
>>>>> at
>>>>>
>>>>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:123)
>>>>> at
>>>>>
>>>>> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:206)
>>>>> at
>>>>>
>>>>> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
>>>>> at
>>>>>
>>>>> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)
>>>>> at
>>>>>
>>>>> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:126)
>>>>> at
>>>>>
>>>>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:184)
>>>>> at
>>>>>
>>>>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:112)
>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
>>>>> at
>>>>>
>>>>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:163)
>>>>> at
>>>>>
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>>>>> at
>>>>>
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>>>>> at
>>>>>
>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
>>>>> at
>>>>>
>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
>>>>> at
>>>>>
>>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
>>>>> at
>>>>>
>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>>>>> at
>>>>>
>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
>>>>> at
>>>>>
>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>>>>> at
>>>>>
>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
>>>>> at
>>>>>
>>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
>>>>> at
>>>>>
>>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
>>>>> at
>>>>>
>>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182)
>>>>> at
>>>>>
>>>>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
>>>>> at
>>>>>
>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>> at
>>>>>
>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>> at java.lang.Thread.run(Thread.java:680)
>>>>> Caused by: java.io.EOFException: No content to map to Object due to end
>>>>> of
>>>>> input
>>>>> at
>>>>>
>>>>> org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2437)
>>>>> at
>>>>> org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2370)
>>>>> at
>>>>> org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1166)
>>>>> at
>>>>>
>>>>> org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:410)
>>>>> at
>>>>>
>>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1032)
>>>>> ... 30 more
>>>>
>>>>
>>
>>
Re: Exception provider registration apparently ineffectual
Posted by Benson Margulies <bi...@gmail.com>.
I hit other problems on trunk that I filed in a JIRA.
On Mon, Nov 14, 2011 at 12:06 PM, Sergey Beryozkin <sb...@gmail.com> wrote:
> Hi Benson
>
> On 14/11/11 15:33, Benson Margulies wrote:
>>
>> Sergey,
>>
>> I'm going to build you a testcase for this
>
> I hope it is sorted out now, I was not really sure though how to update a
> Jackson based test to reproduce this issue, please try the trunk snapshot
> when you get a chance; I just updated the code to check for mappers before
> wrapping IOExceptions, so it should fix it
>
>> and my 'disappearing JSON'
>> mystery.
>
> Please do, thanks
> Sergey
>
>> But I got distracted by building an archetype for JAX-RS
>> first. So it will be another day or two.
>>
>> --benson
>>
>>
>> On Mon, Nov 14, 2011 at 4:36 AM, Sergey Beryozkin<sb...@gmail.com>
>> wrote:
>>>
>>> I think it is a bug, as at the moment all the exceptions thrown from
>>> MessageBodyReaders are wrapped in WebApplicationException, without giving
>>> a
>>> chance to custom IOException handlers, I think we had a similar query
>>> recently...
>>>
>>> You can provide your own WebApplicationException mapper and get to the
>>> cause
>>> of it in that mapper, but I agree that a fix is needed anyway,
>>>
>>> Sergey
>>>
>>> On 13/11/11 01:12, Benson Margulies wrote:
>>>>
>>>> I seem to have run into a problem with exception providers in 2.5.0.
>>>> Am I confused? Should I file a JIRA?
>>>>
>>>> In my context XML:
>>>>
>>>> <jaxrs:server id="services" address="/">
>>>> <jaxrs:inInterceptors>
>>>> <ref bean="logInbound"/>
>>>> </jaxrs:inInterceptors>
>>>> <jaxrs:serviceBeans>
>>>> <ref bean="document-service-impl" />
>>>> </jaxrs:serviceBeans>
>>>> <jaxrs:providers>
>>>> <bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>
>>>> <bean class="com.basistech.rlp.ws.EofExceptionProvider"/>
>>>> </jaxrs:providers>
>>>> </jaxrs:server>
>>>>
>>>> Yet:
>>>>
>>>> 2011-11-12 20:09:24,435 ["http-bio-15000"-exec-1] ERROR
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils - Error deserializing input
>>>> stream into target class PlainTextInputOptions, content type :
>>>> application/json
>>>> 2011-11-12 20:09:24,437 ["http-bio-15000"-exec-1] WARN
>>>> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper -
>>>> WebApplicationException has been caught : No content to map to Object
>>>> due to end of input
>>>> 2011-11-12 20:09:24,438 ["http-bio-15000"-exec-1] DEBUG
>>>> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper - No content
>>>> to map to Object due to end of input
>>>> javax.ws.rs.WebApplicationException: java.io.EOFException: No content
>>>> to map to Object due to end of input
>>>> at
>>>>
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1040)
>>>> at
>>>>
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:612)
>>>> at
>>>>
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:577)
>>>> at
>>>>
>>>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:236)
>>>> at
>>>>
>>>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:88)
>>>> at
>>>>
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
>>>> at
>>>>
>>>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:123)
>>>> at
>>>>
>>>> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:206)
>>>> at
>>>>
>>>> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
>>>> at
>>>>
>>>> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)
>>>> at
>>>>
>>>> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:126)
>>>> at
>>>>
>>>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:184)
>>>> at
>>>>
>>>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:112)
>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
>>>> at
>>>>
>>>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:163)
>>>> at
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>>>> at
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>>>> at
>>>>
>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
>>>> at
>>>>
>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
>>>> at
>>>>
>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
>>>> at
>>>>
>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>>>> at
>>>>
>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
>>>> at
>>>>
>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>>>> at
>>>>
>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
>>>> at
>>>>
>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
>>>> at
>>>>
>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
>>>> at
>>>>
>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182)
>>>> at
>>>>
>>>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
>>>> at
>>>>
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>> at
>>>>
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>> at java.lang.Thread.run(Thread.java:680)
>>>> Caused by: java.io.EOFException: No content to map to Object due to end
>>>> of
>>>> input
>>>> at
>>>>
>>>> org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2437)
>>>> at
>>>> org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2370)
>>>> at
>>>> org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1166)
>>>> at
>>>>
>>>> org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:410)
>>>> at
>>>>
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1032)
>>>> ... 30 more
>>>
>>>
>
>
Re: Exception provider registration apparently ineffectual
Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi Benson
On 14/11/11 15:33, Benson Margulies wrote:
> Sergey,
>
> I'm going to build you a testcase for this
I hope it is sorted out now, I was not really sure though how to update
a Jackson based test to reproduce this issue, please try the trunk
snapshot when you get a chance; I just updated the code to check for
mappers before wrapping IOExceptions, so it should fix it
> and my 'disappearing JSON'
> mystery.
Please do, thanks
Sergey
> But I got distracted by building an archetype for JAX-RS
> first. So it will be another day or two.
>
> --benson
>
>
> On Mon, Nov 14, 2011 at 4:36 AM, Sergey Beryozkin<sb...@gmail.com> wrote:
>> I think it is a bug, as at the moment all the exceptions thrown from
>> MessageBodyReaders are wrapped in WebApplicationException, without giving a
>> chance to custom IOException handlers, I think we had a similar query
>> recently...
>>
>> You can provide your own WebApplicationException mapper and get to the cause
>> of it in that mapper, but I agree that a fix is needed anyway,
>>
>> Sergey
>>
>> On 13/11/11 01:12, Benson Margulies wrote:
>>>
>>> I seem to have run into a problem with exception providers in 2.5.0.
>>> Am I confused? Should I file a JIRA?
>>>
>>> In my context XML:
>>>
>>> <jaxrs:server id="services" address="/">
>>> <jaxrs:inInterceptors>
>>> <ref bean="logInbound"/>
>>> </jaxrs:inInterceptors>
>>> <jaxrs:serviceBeans>
>>> <ref bean="document-service-impl" />
>>> </jaxrs:serviceBeans>
>>> <jaxrs:providers>
>>> <bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>
>>> <bean class="com.basistech.rlp.ws.EofExceptionProvider"/>
>>> </jaxrs:providers>
>>> </jaxrs:server>
>>>
>>> Yet:
>>>
>>> 2011-11-12 20:09:24,435 ["http-bio-15000"-exec-1] ERROR
>>> org.apache.cxf.jaxrs.utils.JAXRSUtils - Error deserializing input
>>> stream into target class PlainTextInputOptions, content type :
>>> application/json
>>> 2011-11-12 20:09:24,437 ["http-bio-15000"-exec-1] WARN
>>> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper -
>>> WebApplicationException has been caught : No content to map to Object
>>> due to end of input
>>> 2011-11-12 20:09:24,438 ["http-bio-15000"-exec-1] DEBUG
>>> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper - No content
>>> to map to Object due to end of input
>>> javax.ws.rs.WebApplicationException: java.io.EOFException: No content
>>> to map to Object due to end of input
>>> at
>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1040)
>>> at
>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:612)
>>> at
>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:577)
>>> at
>>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:236)
>>> at
>>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:88)
>>> at
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
>>> at
>>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:123)
>>> at
>>> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:206)
>>> at
>>> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
>>> at
>>> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)
>>> at
>>> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:126)
>>> at
>>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:184)
>>> at
>>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:112)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
>>> at
>>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:163)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>>> at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
>>> at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
>>> at
>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
>>> at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>>> at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
>>> at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>>> at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
>>> at
>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
>>> at
>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
>>> at
>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182)
>>> at
>>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>> at java.lang.Thread.run(Thread.java:680)
>>> Caused by: java.io.EOFException: No content to map to Object due to end of
>>> input
>>> at
>>> org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2437)
>>> at
>>> org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2370)
>>> at
>>> org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1166)
>>> at
>>> org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:410)
>>> at
>>> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1032)
>>> ... 30 more
>>
>>
Re: Exception provider registration apparently ineffectual
Posted by Benson Margulies <bi...@gmail.com>.
Sergey,
I'm going to build you a testcase for this and my 'disappearing JSON'
mystery. But I got distracted by building an archetype for JAX-RS
first. So it will be another day or two.
--benson
On Mon, Nov 14, 2011 at 4:36 AM, Sergey Beryozkin <sb...@gmail.com> wrote:
> I think it is a bug, as at the moment all the exceptions thrown from
> MessageBodyReaders are wrapped in WebApplicationException, without giving a
> chance to custom IOException handlers, I think we had a similar query
> recently...
>
> You can provide your own WebApplicationException mapper and get to the cause
> of it in that mapper, but I agree that a fix is needed anyway,
>
> Sergey
>
> On 13/11/11 01:12, Benson Margulies wrote:
>>
>> I seem to have run into a problem with exception providers in 2.5.0.
>> Am I confused? Should I file a JIRA?
>>
>> In my context XML:
>>
>> <jaxrs:server id="services" address="/">
>> <jaxrs:inInterceptors>
>> <ref bean="logInbound"/>
>> </jaxrs:inInterceptors>
>> <jaxrs:serviceBeans>
>> <ref bean="document-service-impl" />
>> </jaxrs:serviceBeans>
>> <jaxrs:providers>
>> <bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>
>> <bean class="com.basistech.rlp.ws.EofExceptionProvider"/>
>> </jaxrs:providers>
>> </jaxrs:server>
>>
>> Yet:
>>
>> 2011-11-12 20:09:24,435 ["http-bio-15000"-exec-1] ERROR
>> org.apache.cxf.jaxrs.utils.JAXRSUtils - Error deserializing input
>> stream into target class PlainTextInputOptions, content type :
>> application/json
>> 2011-11-12 20:09:24,437 ["http-bio-15000"-exec-1] WARN
>> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper -
>> WebApplicationException has been caught : No content to map to Object
>> due to end of input
>> 2011-11-12 20:09:24,438 ["http-bio-15000"-exec-1] DEBUG
>> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper - No content
>> to map to Object due to end of input
>> javax.ws.rs.WebApplicationException: java.io.EOFException: No content
>> to map to Object due to end of input
>> at
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1040)
>> at
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:612)
>> at
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:577)
>> at
>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:236)
>> at
>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:88)
>> at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
>> at
>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:123)
>> at
>> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:206)
>> at
>> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
>> at
>> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)
>> at
>> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:126)
>> at
>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:184)
>> at
>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:112)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
>> at
>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:163)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
>> at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
>> at
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
>> at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>> at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
>> at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>> at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
>> at
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
>> at
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
>> at
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182)
>> at
>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>> at java.lang.Thread.run(Thread.java:680)
>> Caused by: java.io.EOFException: No content to map to Object due to end of
>> input
>> at
>> org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2437)
>> at
>> org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2370)
>> at
>> org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1166)
>> at
>> org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:410)
>> at
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1032)
>> ... 30 more
>
>
Re: Exception provider registration apparently ineffectual
Posted by Sergey Beryozkin <sb...@gmail.com>.
I think it is a bug, as at the moment all the exceptions thrown from
MessageBodyReaders are wrapped in WebApplicationException, without
giving a chance to custom IOException handlers, I think we had a similar
query recently...
You can provide your own WebApplicationException mapper and get to the
cause of it in that mapper, but I agree that a fix is needed anyway,
Sergey
On 13/11/11 01:12, Benson Margulies wrote:
> I seem to have run into a problem with exception providers in 2.5.0.
> Am I confused? Should I file a JIRA?
>
> In my context XML:
>
> <jaxrs:server id="services" address="/">
> <jaxrs:inInterceptors>
> <ref bean="logInbound"/>
> </jaxrs:inInterceptors>
> <jaxrs:serviceBeans>
> <ref bean="document-service-impl" />
> </jaxrs:serviceBeans>
> <jaxrs:providers>
> <bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>
> <bean class="com.basistech.rlp.ws.EofExceptionProvider"/>
> </jaxrs:providers>
> </jaxrs:server>
>
> Yet:
>
> 2011-11-12 20:09:24,435 ["http-bio-15000"-exec-1] ERROR
> org.apache.cxf.jaxrs.utils.JAXRSUtils - Error deserializing input
> stream into target class PlainTextInputOptions, content type :
> application/json
> 2011-11-12 20:09:24,437 ["http-bio-15000"-exec-1] WARN
> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper -
> WebApplicationException has been caught : No content to map to Object
> due to end of input
> 2011-11-12 20:09:24,438 ["http-bio-15000"-exec-1] DEBUG
> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper - No content
> to map to Object due to end of input
> javax.ws.rs.WebApplicationException: java.io.EOFException: No content
> to map to Object due to end of input
> at org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1040)
> at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:612)
> at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:577)
> at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:236)
> at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:88)
> at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
> at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:123)
> at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:206)
> at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
> at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)
> at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:126)
> at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:184)
> at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:112)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:163)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:680)
> Caused by: java.io.EOFException: No content to map to Object due to end of input
> at org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2437)
> at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2370)
> at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1166)
> at org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:410)
> at org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1032)
> ... 30 more