You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2018/01/18 09:53:03 UTC

[jira] [Assigned] (CAMEL-12149) Failed to invoke camel cxfrs client due to Content-Type header couldn't be retrieved and passed

     [ https://issues.apache.org/jira/browse/CAMEL-12149?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen reassigned CAMEL-12149:
-----------------------------------

    Assignee: Claus Ibsen

> Failed to invoke camel cxfrs client due to Content-Type header couldn't be retrieved and passed
> -----------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-12149
>                 URL: https://issues.apache.org/jira/browse/CAMEL-12149
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-cxfrs
>    Affects Versions: 2.19.4, 2.20.1
>            Reporter: Xilai Dai
>            Assignee: Claus Ibsen
>            Priority: Major
>             Fix For: 2.19.5, 2.20.2, 2.21.0
>
>
> As of Camel 2.19.x, async support is added by default in the CxfRsProducer. Considering this simple rsClient:
> {code:java}
> <camel-cxf:rsClient id="restClient"
>         address="http://localhost:8040/services/eventlogging/events" serviceClass="org.talend.esb.eventlogging.sender.rest.EventLogging"
>         loggingFeatureEnabled="true">
>     <camel-cxf:providers>
>         <ref component-id="jsonProvider" />
>     </camel-cxf:providers>
>     <camel-cxf:headers>
>          <entry key="Content-Encoding" value="UTF-8" />
>          <entry key="Content-Type" value="application/json" />
>     </camel-cxf:headers>
> </camel-cxf:rsClient>
> <camel:camelContext>
>     <camel:route>
>         <camel:from uri="timer://foo?repeatCount=1" />
>         <camel:process ref="marshallingPreparationProcessor" />
>         <camel:to uri="cxfrs://bean://restClient" />
>     </camel:route>
> </camel:camelContext>{code}
> It works well with the right Content-Type setting in Camel 2.17.x/Camel.2.18.x, but the Content-Type will be wildcard and "No message body writer has been found ..." will be thrown when invoke the restClient in Camel 2.19.x/2.20.x.
> {code:java}
> ----------------------------
> ID: 1
> Address: http://localhost:8040/services/eventlogging/events
> Http-Method: POST
> Content-Type: */*
> Headers: {Content-Encoding=[UTF-8], Content-Type=[*/*], Content-Language=[en_US], Accept=[*/*]}
> --------------------------------------
> [mel-1) thread #0 - timer://foo] CxfRsProducer                  ERROR Failed request
> javax.ws.rs.ProcessingException: No message body writer has been found for class org.talend.esb.eventlogging.sender.rest.EventList
> , ContentType: */*
>         at org.apache.cxf.jaxrs.client.AbstractClient.reportMessageHandlerProblem(AbstractClient.java:810)
>         at org.apache.cxf.jaxrs.client.AbstractClient.writeBody(AbstractClient.java:497)
>         at org.apache.cxf.jaxrs.client.WebClient$BodyWriter.doWriteBody(WebClient.java:1178)
>         at org.apache.cxf.jaxrs.client.AbstractClient$AbstractBodyWriter.handleMessage(AbstractClient.java:1174)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
>         at org.apache.cxf.jaxrs.client.AbstractClient.doRunInterceptorChain(AbstractClient.java:677)
>         at org.apache.cxf.jaxrs.client.WebClient.doInvokeAsync(WebClient.java:952)
>         at org.apache.cxf.jaxrs.client.WebClient.doInvokeAsyncCallback(WebClient.java:915)
>         at org.apache.cxf.jaxrs.client.WebClient$AsyncInvokerImpl.method(WebClient.java:1440)
>         at org.apache.camel.component.cxf.jaxrs.CxfRsProducer.invokeAsyncHttpClient(CxfRsProducer.java:175)
>         at org.apache.camel.component.cxf.jaxrs.CxfRsProducer.process(CxfRsProducer.java:116){code}
> ([https://github.com/xldai/test/tree/master/test-cxfrs] is created for easily reproduce this issue)
> A PR is created for fixing this issue.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)