Hi,
Can I have a look at your Camel route?
And which camel-cxf DataFormat are you using ?
If you are using PAYLOAD DataFormat, I'm afraid you need to use Latest
Camel 2.3.0 SNAPSHOT. As William Tam just added a enhancement for it[1]
[1]https://issues.apache.org/activemq/browse/CAMEL-2495
HiS wrote:
Hi All,
We are using CXF 2.2.3 with Camel 2.0.0 for exposing an end-point on Tomcat
6.0. A requirement is that if incoming request does not have a parameter,
soap fault needs to be thrown.
As the Fault and Out Consolidation has happened in Camel 2.0.0, I am
creating a soap fault and setting it in the Out stream of Exchange inside a
processor.
SOAPMessage msg = null;
try {
MessageFactory factory =
MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
msg = factory.createMessage();
SOAPBody body = msg.getSOAPBody();
QName qName = SOAPConstants.SOAP_SENDER_FAULT;
SOAPFault soapFault = body.addFault(qName, "Test Code");
Detail detail = soapFault.addDetail();
detail.setValue("Test Description");
exchange.getOut().setFault(true);
exchange.getOut().setHeader(org.apache.cxf.message.Message.RESPONSE_CODE,
new Integer(500));
exchange.getOut().setBody(body);
} catch (SOAPException e) {
e.printStackTrace();
}
After doing this, I am not getting any exception but the soap fault is also
not getting thrown, instead a Soap Envelope with empty Body is coming as
output.
Any ideas on what could be going wrong in the above?
Thanks,
Himanshu