Hi all,
I'm trying to setup a small use case with switchyard and camel. It works well when it comes to happy flow. But actually from time to time I get a reasonable fault, which get logged, but somewhat lost.
So I used the "camel-soap-proxy" quickstart to see if I did something wrong, but actually it happens to behave the same way.
I added single line to ReverseService to produce conditional fault:
if ("fail".equals(text)) throw new IllegalArgumentException();
Then I use the soap-request.xml with soap ui and get correct response for ReverseService and the proxified service.
After that I replaced "foobar" with "fail" and got the difference - the service itself delivers a fault:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Fault occurred while processing.</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
but the proxified version delivers the original request:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:reverse xmlns:ns2="urn:switchyard-quickstart:camel-soap-proxy:1.0">
<text>fail</text>
</ns2:reverse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
I used "switchyard-as7-0.7.0.Final.zip" for the above test. Using MessageTrace handler I see, that the Fault is processed, but I have no idea by whom and what can I do to process it myself, preferably in camel xml.
Is there another example that handles faults? I couldn't found anything appropriated.