Hi Freeman,
Thanks for taking the time to look at this.
I don't see any related properties in camel. Here's a couple
of
traces from
the log file produced by the camel su:
This following trace is produced from:
.to("log:ShowHeadersAndProperties?
showBody=false&showHeaders=true&showProperties=true")
07:45:08,258 | INFO | pool-flow.seda.servicemix-camel-
thread-13 |
ShowHeadersAndProperties |
org.apache.camel.processor.Logger 88 |
Exchange[Properties:{CamelToEndpoint=log://
ShowHeadersAndProperties?
showBody=false&showHeaders=true&showProperties=true,
JbiMessageExchange=InOut[
id: ID:172.17.133.204-1278cf07b53-4:4
status: Active
role: provider
service: {urn:mig}ConsumerAdapter.Toolkit.Discharge
endpoint: Router
operation:
{http://www.nhs.cfh.org/interoperability.toolkit/DischargeSummary/
1.0}SendDischargeSummary
in: <?xml version="1.0" encoding="UTF-8"?><soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/
envelope/"><soap:Body>...
],
JbiOperation={http://www.nhs.cfh.org/interoperability.toolkit/DischargeSummary/1.0
}SendDischargeSummary},
Headers:{}, BodyType:javax.xml.transform.dom.DOMSource]
The next trace is produced from:
logger.debug("Properties are: " +
exchange.getProperty("javax.jbi.messaging.protocol.headers"));
07:45:08,258 | DEBUG | pool-flow.seda.servicemix-camel-
thread-13 |
MiGConsumerAdapterRouteBuilder |
toolkit.discharge.MiGConsumerAdapterRouteBuilder$1 52 |
Properties
are:
null
And finally the next trace from:
logger.debug("Headers are: " +
exchange
.getIn().getHeader("javax.jbi.messaging.protocol.headers"));
07:45:08,258 | DEBUG | pool-flow.seda.servicemix-camel-
thread-13 |
MiGConsumerAdapterRouteBuilder |
toolkit.discharge.MiGConsumerAdapterRouteBuilder$1 53 |
Headers
are: null
If I set an interceptor in CXF I can see the header properties
from:
ContextUtils.retrieveMAPs(message, false, false);
Thanks for any advice,
Steve.
Freeman Fang wrote:
Hi,
We already copy headers from cxf message to nmr message of
smx-
cxf-
bc,
and also copy headers from nmr message to camel message of
smx-
camel.
So I believe it works.
How did you try to extract the headers?
You should use key "javax.xml.ws.addressing.context.inbound"
to
get
wsa related properties, the result object is a Map.
And use key "javax.jbi.messaging.protocol.headers" to get
other
properties, the result object is a Map.
Freeman
On 2010-3-24, at 上午12:30, slew77 wrote:
Hi,
I have the following setup running in ServiceMix routing SOAP
messages:
CXFBC --> CAMEL --> CXFBC
When a message is received, I need to be able to use the SOAP
header
properties, e.g. wsa:MessageID, within the Camel route.
The CXF BC Consumer is set with:
useJBIWrapper="false"
useSOAPEnvelope="true"
But the Header is missing from the SOAP Envelope when the
exchange
reaches
the Camel module.
I've tried setting up an interceptor to explicitely set
properties
on the
CXF exchange and message, but am not sure how or if these are
mapped.
I'm using servicemix-cxf-bc-2010.01-SNAPSHOT-installer.zip
built
on 21
March.
Any help is appreciated.
Thanks,
Steve.
--
View this message in context:
http://old.nabble.com/Passing-SOAP-Headers---CXFBC--%3E-CAMEL-tp28003448p28003448.html
Sent from the ServiceMix - User mailing list archive at
Nabble.com.
--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com
--
View this message in context:
http://old.nabble.com/Passing-SOAP-Headers---CXFBC--%3E-CAMEL-tp28003448p28011664.html
Sent from the ServiceMix - User mailing list archive at
Nabble.com.