camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marco Zapletal <>
Subject Re: Returning a custom response (custom fault message) when a transaction fails
Date Mon, 21 Feb 2011 17:47:46 GMT
hmm... it seemed that the handled(true) statement caused my problem, 
which caused the exception not to be rethrown.

when I set handled to false, it seems to work fine...

On 21.02.2011 18:09, Marco Zapletal wrote:
> Dear folks,
> My questions relates to a transacted route as it is described in the
> Camel in Action Book in Section 9.4.3 (Returning a custom response) - my
> goal is, however, to return a web service fault (instead of regular
> response message) _and_ rollback the route.
> The situation is as follows: I have a transacted camel route exposed as
> a web service. In case, an exception happens on the route, the exception
> is caught using an onException block and a custom response is returned.
> My transaction handling behavior looks quite similar as in the book:
> <onException>
> <exception>java.lang.Exception</exception>
> <handled><constant>true</constant></handled>
> <transform><method bean="order" method="replyError"/></transform>
> <rollback markRollbackOnly="true"/>
> </onException>
> However, I do not want to return a "regular response message" containing
> an error code, but a web service fault. I am doing this using code as
> follows in my corresponding bean:
> exchange.getOut().setBody(new Failure(...)); // my JAXB fault type
> exchange.getOut().setFault(true);
> My problem is now that when calling setFault(true) on the out messsage
> the transaction is not rolled back according to the logs
> (DEBUG:Transaction commit (0x2b105d) for ExchangeId: ID-4711)
> When I return a regular out message, everything works as expected and I
> see in the logs that the transaction is rolled back. I've already tried
> to use just rollback() instead of markRollbackOnly(), but without any
> success.
> Any help would be appreciated.
> Thanks,
> marco

View raw message