On Mon, Sep 15, 2008 at 5:31 AM, maxxo <[EMAIL PROTECTED]> wrote: > > Hallo, > > I have a question concerning how ode processes soap faults thrown within > the > service provider. Indeed there are a lot of threads in list but I found no > proper answer for my problem. > I created a BPEL process where I invoke a service. When the service > couldn't > process the request it sends a fault message defined in the WSDL > description > of the service. The problem is that ode don't throw the appropriate fault > thus I cannot catch it within a fault handler. I read the section "Activity > Failure and Recovery" from the ode user guide. When I set the attribute > faultOnFailure to true the invoke-element throws an activityFailure. I > don't > know whether I completely understood the distinction between faults and > failure, but I thought that ode will throw faults defined in the WSDL > description and only throw activityFailure when the service does not > respond > or respond with a messages not being defined in the WSDL description. > > Is this assumption true?
You're correct, ODE won't enter activity recovery for a WSDL fault. So you have to check your WSDL and make sure the fault thrown is properly declared in the operation. Matthieu > > If true, does ode take the fault name from the faultstring-element from the > soap-fault messages? > > I ask this because I use the soa framework Sopera 3.1 to build the services > and I am afraid that it doesn't implement correctly the soap standard but I > am not really sure. > > Thank you for your answers. > > Fault message definition: > > <wsdl:message name="ZipCodeFromAddressFault"> > <wsdl:part element="tns:ZipCode_fault" name="parameters"/> > </wsdl:message> > > SOAP response message: > > <?xml version='1.0' encoding='UTF-8'?> > <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> > <env:Body> > <env:Fault> > <faultcode>server</faultcode> > <faultstring>BusinessFaultException</faultstring> > <detail> > <ns2:ZipCode_fault > xmlns:ns2="http://services.sopware.org/ZipCodeFromAddress"> > <ZipCodeFaultString> No proper zip code > found!</</ZipCodeFaultString> > </ns2:ZipCode_fault> > </detail> > </env:Fault> > </env:Body> > </env:Envelope> > > Part of the ode log: > > DEBUG - GeronimoLog.debug(66) | Response from provider was: [<?xml > version="1.0" encoding="UTF-8"?> > <ns2:ZipCode_fault > xmlns:ns2="http://services.sopware.org/ZipCodeFromAddress > "><ZipCodeFaultString>No > proper zip code found!</ZipCodeFaultString></ns2:ZipCode_fault> > ] > DEBUG - GeronimoLog.debug(66) | replyWithFailure mex=hqejbhcnphr3ldqk8dnsww > failureType=OTHER description=SOPERA service replies with error message > details=[message: null] > DEBUG - GeronimoLog.debug(66) | Invoking message response for mexid > hqejbhcnphr3ldqk8dnsww and channel 23 > DEBUG - GeronimoLog.debug(66) | Triggering response > ERROR - GeronimoLog.error(104) | Failure during invoke: SOPERA service > replies with error message > DEBUG - GeronimoLog.debug(66) | ActivityRecovery: Activity 13 requires > recovery > INFO - GeronimoLog.info(79) | ActivityRecovery: Registering activity 13, > failure reason: SOPERA service replies with error message on channel 24 > DEBUG - GeronimoLog.debug(66) | Setting execution state on instance 25435 > 15.09.2008 14:07:28 > org.sbb.management.messaging.impl.OperationMonitorBackend > INFO: added response time for operation getZipCodeFromAddress : 125 > > > -- > View this message in context: > http://www.nabble.com/Ode-fault-handling-tp19492019p19492019.html > Sent from the Apache Ode User mailing list archive at Nabble.com. > >
