Hi,

Because a lot of soap headers only applicable between two direct endpoint, such as ws-security/ws-addressing headers, so unless those soap headers defined in the wsdl as a part of the method invocation parameter, by default it would be dropped from cxfbc consumer to provider. However, we save the soap headers in NormalizedMessage, hence you can write your own interceptor for cxf bc provider to set headers as you want, the code to retrieve soap headers from NormalizedMessage should be like

Map<String, Object> headers = normalizedMessage.getProperty(CxfJbiConstants.PROTOCOL_HEADERS)
// here headers is a header namespace /object map

Freeman

On 2012-3-1, at 下午9:30, Radomir Kadlec wrote:

Hello,

how can I *forward all incomming soap headers* to the destination service?
I use *cxfbc:consumer* as incomming endpoint and c*xfbc:producer* as
destination endpoint.
The service client sends soap headers and Servicemix has to forward all them
throught the NMR to the producer and then to the destination business
service.

I used own interceptor in the USER_PROTOCOL phase to check the content of
the message in debug mode.
Interceptor in the cxfbc:consumer shows SoapHeader in the message, but this
header will not be forwarded to the producer. Why?

I tried then to change the direction of the SoapHeader to INOUT:
header.setDirection(Direction.DIRECTION_INOUT);
but it didn't help.

ServiceMix version: apache-servicemix-4.4.1-fuse-01-06
Endpoints are deployed as osgi bundles.

Thanks,
Radomir

--
View this message in context: 
http://servicemix.396122.n5.nabble.com/How-to-forward-soap-headers-tp5527861p5527861.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

---------------------------------------------
Freeman Fang

FuseSource
Email:[email protected]
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com









Reply via email to