[
https://issues.apache.org/jira/browse/CAMEL-10429?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15639461#comment-15639461
]
ASF GitHub Bot commented on CAMEL-10429:
----------------------------------------
GitHub user tadayosi opened a pull request:
https://github.com/apache/camel/pull/1249
CAMEL-10429 - CXFRS client requires Exchange.HTTP_URI instead of HTTP_PATH
for Camel tranport
https://issues.apache.org/jira/browse/CAMEL-10429
Consolidating the header mapping logic into `CxfHeaderHelper`. The core
part of the fix is this line:
https://github.com/apache/camel/compare/master...tadayosi:CAMEL-10429?expand=1#diff-ddb35843f1171bf5023cbf3a72fa2581R107
where CXF HTTP header mappings are added to `propagateCxfToCamel(..)`
method.
However, there is still room for further consolidation of the header
mapping logic between `DefaultCxfRsBinding` and `CxfHeaderHelper`. I'll file
another JIRA later for this refactoring.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/tadayosi/camel CAMEL-10429
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/camel/pull/1249.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1249
----
commit e55502ea019a7b092303a67d3adb1c2cbe972d74
Author: Tadayoshi Sato <[email protected]>
Date: 2016-11-05T07:49:01Z
CAMEL-10429 - CXFRS client requires Exchange.HTTP_URI instead of HTTP_PATH
for Camel tranport
----
> CXFRS client requires Exchange.HTTP_URI instead of HTTP_PATH for Camel
> tranport
> -------------------------------------------------------------------------------
>
> Key: CAMEL-10429
> URL: https://issues.apache.org/jira/browse/CAMEL-10429
> Project: Camel
> Issue Type: Bug
> Components: camel-cxfrs
> Affects Versions: 2.18.0
> Reporter: Tadayoshi Sato
> Attachments: camel-cxf-transport.zip
>
>
> The [camel-cxfrs doc|http://camel.apache.org/cxfrs.html] writes that
> {{HTTP_PATH}} is required for {{camel-cxfrs}} producer when it's used with
> {{httpClientAPI}} option.
> {quote}
> The CXF JAXRS front end also provides a http centric client API. You can also
> invoke this API from camel-cxfrs producer. *You need to specify the HTTP_PATH
> and the HTTP_METHOD* and let the producer use the http centric client API by
> using the URI option httpClientAPI or by setting the message header
> CxfConstants.CAMEL_CXF_RS_USING_HTTP_API.
> {quote}
> However, when Camel transport is used between CXFRS producer and consumer,
> the invocation succeeds only if it sets {{HTTP_URI}}, not {{HTTP_PATH}}, to
> the header.
> {code:java}
> from("direct:input.camel")
> .setHeader(Exchange.HTTP_METHOD, constant("GET"))
> .setHeader(Exchange.CONTENT_TYPE, constant("text/plain"))
> .setHeader(Exchange.HTTP_URI,
> simple("/greeting/hello/${body}"))
> //.setHeader(Exchange.HTTP_PATH,
> simple("/greeting/hello/${body}")) // <- fails
> .inOut("cxfrs:bean:rsClient");
> {code}
> Otherwise it fails with {{404}} error.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)