Thanks again, Sergey. I was able to register the provider using:

  <bean id="jsonProvider" 
class="org.codehaus.jackson.jaxrs.JacksonJsonProvider”/>

Then use it via:

      <to uri="cxfrs:bean:webService?provider=#jsonProvider”/>

However, it looks like there is no content available via the exception. Using 
the code:

        InvocationTargetException exception = 
exchange.getProperty(Exchange.EXCEPTION_CAUGHT, 
InvocationTargetException.class);
        NotFoundException orig = (NotFoundException)(exception.getCause());
        CrewServiceDeniedError err = 
orig.getResponse().readEntity(CrewServiceDeniedError.class);
        logger.error("Incoming response: ", err.getReason());
        logger.error("Incoming response (plain):", 
orig.getResponse().readEntity(String.class));

I get output at runtime:

[Camel (rraaCamelContext) thread #2 - seda://from_rraa] ERROR 
my.module.ExceptionProcessor - Incoming response: 
[Camel (rraaCamelContext) thread #2 - seda://from_rraa] ERROR 
my.module.ExceptionProcessor - Incoming response (plain):

So I’m back to wondering where the original payload from the REST 404 response 
is. It gets logged from Camel as:

ID: 2
Response-Code: 404
Encoding: ISO-8859-1
Content-Type: application/json
Headers: {Accept=[application/json], 
breadcrumbId=[ID-Steves-MacBook-Pro-local-55129-1446506823854-1-7], 
content-type=[application/json], OriginalHeader=[{name=VerifyEmployeeRequest, 
version=1, scac=rraa, timeSent=null, uuid=abcd-1234}], pin=[1234], 
reason=[INIT], Server=[Jetty(9.2.11.v20150529)], transfer-encoding=[chunked], 
User-Agent=[Apache CXF 3.1.2]}
Payload: { "employeeID": "bad-name", "reason": "id not found” 
}


Thanks very much for any insight,

-Steve

> On Nov 2, 2015, at 3:52 PM, Sergey Beryozkin <sberyoz...@gmail.com> wrote:
> 
> 
> As I said you will need to register a JAXRS provider capable of converting 
> it, though I'm not sure right now what the syntax is with
> cxfrs:bean:webService, looks like from
> http://camel.apache.org/cxf-bean-component.html
> 
> it is something like
> cxfrs:bean:webService?providers=#jackson
> 
> Cheers, Sergey
> On 02/11/15 18:02, Steve Huston wrote:
>> Thank you very much for your quick help, Sergey!
>> I tried your solution and now get the following exception:
>> 
>> [Camel (rraaCamelContext) thread #2 - seda://from_rraa] ERROR 
>> org.apache.cxf.jaxrs.utils.JAXRSUtils - No message body reader has been 
>> found for class my.class.path.CrewServiceDeniedError, ContentType: 
>> application/json
>> 
>> The code I have is:
>> 
>>         InvocationTargetException exception = 
>> exchange.getProperty(Exchange.EXCEPTION_CAUGHT, 
>> InvocationTargetException.class);
>>         NotFoundException orig = (NotFoundException)(exception.getCause());
>>         CrewServiceDeniedError err = 
>> orig.getResponse().readEntity(CrewServiceDeniedError.class);
>> 
>> I created this class for the payload:
>> 
>> public class CrewServiceDeniedError {
>> 
>>     private String employeeID;
>>     private String reason;
>> 
>>     public String getEmployeeID()
>>     { return employeeID; }
>>     public void setEmployeeID(String id)
>>     { employeeID = id; }
>> 
>>     public String getReason()
>>     { return reason; }
>>     public void setReason(String r)
>>     { reason = r; }
>> }
>> 
>> -Steve
>> 
>>> On Nov 2, 2015, at 11:24 AM, Sergey Beryozkin <sberyoz...@gmail.com> wrote:
>>> 
>>> Hi
>>> If you can access NotFoundException then what you can do next is to do
>>> 
>>> ErrorInfo errorInfo = exception.getResponse().readEntity(ErrorInfo.class)
>>> 
>>> where ErrorInfo is a custom class capturing a JSON error response, you'd 
>>> also need to register Jackson or other provider to get it converted. Or 
>>> read it as String.class and parse manually
>>> 
>>> HTH, Sergey
>>> On 02/11/15 16:15, Steve Huston wrote:
>>>> I put this up on stackoverflow... if you have cxfrs expertise, could you 
>>>> please read this?
>>>> 
>>>> How to access payload from REST 404 response in Camel cxfrs?
>>>> http://stackoverflow.com/q/33445686/240342?sem=2
>>>> 
>>>> Thanks,
>>>> -Steve
>>>> 
>>> 
>> 
> 
> 
> -- 
> Sergey Beryozkin
> 
> Talend Community Coders
> http://coders.talend.com/

Reply via email to