You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by Sebastian Gomez <sa...@gmail.com> on 2009/09/29 18:00:15 UTC

Fault Handling in ODE JBI

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.

Thanks in advance,

Sebastian Gomez.

Re: Fault Handling in ODE JBI

Posted by Rafal Rusin <ra...@gmail.com>.
2009/9/30 Sebastian Gomez <sa...@gmail.com>:
> Hi Rafal.
> Thanks a lot for your indications, they will sure be very useful. I've just
> got one more question: due to a few things in my project, we ended up using
> the DocLitMapper, instead of ServiceMixMapper. Will it be different to what
> you've explained?
>
> Thanks again,
>
> Sebastian Gomez.
>
> On Tue, Sep 29, 2009 at 9:58 PM, Rafal Rusin <ra...@gmail.com> wrote:
>
>> 2009/9/29 Sebastian Gomez <sa...@gmail.com>:
>> > 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.

I made some changes recently in ServiceMixMapper. You can check it out
in current 1.X branch.

Regards,
-- 
Rafał Rusin
http://www.touk.pl
http://top.touk.pl
http://www.mimuw.edu.pl/~rrusin

Re: Fault Handling in ODE JBI

Posted by Sebastian Gomez <sa...@gmail.com>.
Hi Rafal.
Thanks a lot for your indications, they will sure be very useful. I've just
got one more question: due to a few things in my project, we ended up using
the DocLitMapper, instead of ServiceMixMapper. Will it be different to what
you've explained?

Thanks again,

Sebastian Gomez.

On Tue, Sep 29, 2009 at 9:58 PM, Rafal Rusin <ra...@gmail.com> wrote:

> 2009/9/29 Sebastian Gomez <sa...@gmail.com>:
> > 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
>

Re: Fault Handling in ODE JBI

Posted by Rafal Rusin <ra...@gmail.com>.
2009/9/29 Sebastian Gomez <sa...@gmail.com>:
> 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