[ 
https://issues.apache.org/jira/browse/CAMEL-12149?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16330308#comment-16330308
 ] 

ASF GitHub Bot commented on CAMEL-12149:
----------------------------------------

Github user davsclaus closed the pull request at:

    https://github.com/apache/camel/pull/2179


> 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
>            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)

Reply via email to