PendingCall.onFault cannot capture SOAP:FAULT responses
Issue
The Flash PendingCall.onFault class cannot correctly respond to SOAPfault object responses. Macromedia Flash may throw an error noting that the endpoint was unreachable.
Reason
The SOAP 1.1 specification states that all SOAPfault messages must reurn an HTTP 500 header when throwing an exception, explaining that the endpoint was unreachable for whatever reason.
However, when the PendingCall.onFault receives the faultcode, is unable to correctly parse the status code 500.
By design, if Flash Player gets a status code of anything other than 200 (OK) it disregards the contents of the response. So when the PendingCall.onFault faultcode is 500 Flash Player does not know what to do.
Ref. (129135)
Solution
One possible solution is to modify the service engine so that if SOAP:FAULT presented in SOAP:Envelope throws an error, it returns a value of 200. This will allow Flash Player to let the messages through and the PendingCall.fault should function as expected. However, this can introduce problems if your webservice is consumed by solutions -other- than Flash, so test carefully.
Another possible solution is to switch to Flash Remoting. Flash Remoting has more sophisticated SOAPfault handling built into its APIs.
This content requires Flash
To view this content, JavaScript must be enabled, and you need the latest version of the Adobe Flash Player.
Download the free Flash Player now!
