This is currently a
limitation in the Flash Player ( all versions ). SOAP faults require
HTTP 500 to returned. When the FP sees a 500, it stops reading data from the
socket. The current workaround is to use the proxy or to use some other
mechanism to change the HTTP status code to 200 before the FP receives
it. Yes I realize that this is pretty poor and has serious
limitations.
One last note, Adobe is evidently working
on something akin to the proxy that does this for you on your server. Clearly,
this won't help you when accessing web services one machines over which you
have no control.
Carson
From: flexcoders@yahoogroups.com on behalf of
m88e24
Sent: Tue 6/20/2006 3:58 AM
To:
flexcoders@yahoogroups.com
Subject: [flexcoders] Access SOAP fault
code
Scenario:
Flash players talks directly to a SOAP web service, no
proxy is used.
The proxy attribute of the WebService element is set to
"false". A
specific web service operation generates an application level
user
exception and the faultcode and faultstring is returned in the
SOAP
body. The FaultEvent object received by the fault handler
function
does not contain the faultcode and the faultstring from the
SOAP
message. The faultDetail in the FaultEvent object is of type
"ioError"
and the error text is "Error #2032: Stream error …….." . Whilst
the
actual SOAP faultcode is "soapenv:Server.userException" and the
SOAP
faultstring is
"coldfusion.xml.rpc.CFCInvocationException:
[coldfusion.runtime.UndefinedElementException
: Element SPELER.ID is
undefined in SESSION."
This is custom
exception thrown by a remote function in a ColdFusion
CFC. This is not an
ioError.
A TCPmonitor shows the correct message request and response
with the
faultstring and faultcode as expected.
How can the actual
SOAP faultcode and faultstring be retrieved from
the FaultEvent or in any
other way. Why is the fault description in
the FaultEvent object totally
different from the actual SOAP fault
message. It is not a transport error
so why does the FaultEvent shows
an ioError. It is an application level
exception and as such returned
to the Flash application encapsulated in the
SOAP body.
Any suggestions, thank you
[Inbound Mail Scanned by
MessageLabs]
______________________________________________________________________
This
email has been scanned by the MessageLabs Email Security System.
For more
information please visit http://www.messagelabs.com/email
______________________________________________________________________