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

Reply via email to