2009/9/29 Sebastian Gomez <[email protected]>: > Hi everyone. > I'd like to know if there are some kind of best practices for handling > faults in ODE when it's integrated in ServiceMix 3. I've had a look at the > test cases in the ODE distribution, but they aren't very extensive. Could > someone number a few steps to follow to manage error cases the best way > possible? i.e Is it necessary to declare the fault message in the WSDL? Is a > fault thrown everytime ODE receives a JBI message with an error? ... > > I'd also appreciate anyone pointing out any documentation about fault > handling, I've searched everywhere and can only find the User Guide in the > ODE homepage.
Well, there are two types of errors - failures and faults (it's described in user manual). Failures are used when delivery error occurs and are hadled by activityRecovery (for example manually). As for faults in SMX, there is ServiceMixMapper class, which converts NMR message into ODE message. It uses WSDL declarations from BPEL imports to convert NMR fault into WSDL declared fault message (ODE requires wsdl declared messages for faults as well as for in/outs). In bpel, if you want to catch such fault, you need to use <catch faultMessageType=".."> syntax. I think you can use example from axis2-war tests http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/axis2-war/src/test/resources/TestStructuredFault/ You can also use catchAll if you don't want to declare WSDL fault message. Regards, -- RafaĆ Rusin http://www.touk.pl http://top.touk.pl http://www.mimuw.edu.pl/~rrusin
