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?
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.