Getting SOAP Headers using Camel CXF component
Getting SOAP headers using Camel CXF component.
Camel Route :
import org.apache.camel.builder.RouteBuilder;
public class SampleRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from("cxf:bean:sampleService")
.to("bean:sampleProcessor?method=processData")
.log("${body}");
}
}
Processor :
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.w3c.dom.Element;
import org.apache.camel.Exchange;
import org.apache.camel.Header;
import org.apache.cxf.binding.soap.SoapHeader;
public class CustomProcessor {
public void processData(
@Header("org.apache.cxf.headers.Header.list") List<SoapHeader> soapHeaders,
Exchange exchange) {
// Print SOAP Headers
for (SoapHeader soapHeader : soapHeaders) {
System.out.println(soapHeader.getName().getLocalPart() + " : "
+ ((Element)soapHeader.getObject()).getTextContent());
}
}
}