[
https://issues.apache.org/jira/browse/CAMEL-8978?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Franz Forsthofer updated CAMEL-8978:
------------------------------------
Attachment: 0001-Setting-SOAP-header-in-payload-case-via-camel-header.patch
> Setting of SOAP headers via the Camel Header
> "org.apache.cxf.headers.Header.list" not working for CXF data format
> "PAYLOAD"
> ----------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-8978
> URL: https://issues.apache.org/jira/browse/CAMEL-8978
> Project: Camel
> Issue Type: Bug
> Components: camel-cxf
> Affects Versions: 2.14.3, 2.15.2
> Reporter: Franz Forsthofer
> Fix For: 2.15.3, 2.14.4, 2.16
>
> Attachments:
> 0001-Setting-SOAP-header-in-payload-case-via-camel-header.patch
>
>
> In the camel-cxf documentation https://camel.apache.org/cxf.html is described
> in the chapter "How to deal with the message for a camel-cxf endpoint in
> PAYLOAD data format" that "You can use the Header.HEADER_LIST as the key to
> set or get the SOAP headers".
> But this only works for getting SOAP headers.
> If you want to set SOAP headers via the Camel header Header.HEADER_LIST, the
> headers are not taken into account in the CXF-to-endpoint.
> I analysed the problem and found out that
> - the SOAP header list is forwarded to the CXF request context
> - that this header list is overwritten in CxfEndpoint.CamelCxfClientImpl by
> the CxfPayload.getHeaders() value.
> My suggestion is that we merge the headers from the Camel header and the the
> CXF payload in CxfEndpoint.CamelCxfClientImpl. See the attached patch.
> With the merging we cover all different use cases:
> - the headers can be set in the CxfPayload
> - the headers can be set in the Camel header Header.list
> - the headers can be set in the CXFPayload and the CamelHeader Header.list.
> Also the case where the list instance in the CxfPayload is the same as in the
> Camel header (in this case no merge is necessary) is covered. This case
> happens if the from-endpoint is also a CXF endpoint and the CXF payload is
> forwarded to the to-CXF-endpoint.
> I can commit the change. However, before I do it I want to have the agreement
> from the CXF experts.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)