On 07/03/2010 20:08, Jim Talbut wrote:
exchange.getIn().On 07/03/2010 07:05, Claus Ibsen wrote:
Hi

You can enable the soapFault=true on the CamelContext which turns
faults into exceptions.

Or you can simply add a processor step at the end of your route, and
check if the exchange is a fault

public void process(Exchange exchange) {
boolean isFault = exchange.hasOut()&&  exchange.getOut().isFault();
// do something before the OUT message is returned to the caller
}
Putting on the extra process step works (I didn't know you could do that, I'd assumed that InOut routes were stack-like, but I guess they're actually more like a loop given that they end up back at the source from).

But neither context.setHandleFault(true) nor from("xxx").handleFault().to("yyy") work - my onException is never called and the soap:fault is returned to the client.
I think the problem is that the CXF transport isn't setting it as a fault.
Ah!
My apologies for requiring you to engage psychic debugging (the problem with being new to something is that you don't know what is important).

The problem was that I was working in with DataFormat.MESSAGE - and I presume that means I'm taking on more responsibility than I want to. A change to PAYLOAD should be adequate for my needs and now I get an exception.

Might be worth a note on the Camel CXF page to explain that difference.

Thanks very much for your help.

Jim

Reply via email to