Status codes higher than 300 are not provided to Flash Player by the
browser. It is an artifact of the inconsistencies within the plug-in API
on certain browsers. The decision was made by the Flash Player team to
keep the runtime behavior of the player consistent so there is no data
provided when a 400, 404, 500 error occurs. This is why the proxy was
created in the first place. The proxy changes the header error codes and
returns them to the Flash Player in a suitable manner.

 

Since Adobe could not force the browser manufacturers to change to
return 300 or higher errors, we created a proxy to allow Web Services to
work seamlessly.

 

You can write your own Web Services Proxy and modify the results
returned. Although if you go this route, you might as well use remoting
to return an object to the player. The SOAP Web Services parser is very
slow client side because of the nature of the work that it is doing. The
performance decays exponentially with larger SOAP result objects and
there are many encoding types that are not supported. Here are some
sample stacks:

 

FlexApp <AMF> Server <WSSOAP> Server --> 100% compatible, AMF exchange
about 10X faster client to server.

 

FlexApp <WSSOAP> Server   --> 500 error issues

 

If only Flash Player got 300 or higher status codes consistently from
the various browsers. I wish it was a switch we could change but it
isn't. Many point to this as Adobe pushing an expensive server but the
reality is that we were trying to solve a problem and enable SOAP WS
compatibility with the Proxy.

 

We need a better solution in the WS-SOAP compatibility.

 

Ted Patrick 

Flex Technical Evangelist 

Adobe Systems 

 

http://www.onflex.org <http://www.onflex.org>  

http://www.linkedin.com/in/tedpatrick
<http://www.linkedin.com/in/tedpatrick>  

________________________________

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Greg McCreath
Sent: Sunday, January 28, 2007 5:31 PM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Do I *REALLY* need Flex Data Services for
WebServices?

 

Hi All,

 

The manual says:

 

Note: "You must use the Flex proxy, which is part of Flex Data Services,
to ensure that HTTP

status codes are returned correctly from HTTP services and web services.
On web

browsers, when a service returns any status code other than 200, Adobe
Flash Player

cannot read the body of the response. If the status code is 500 and the
body contains a

fault, there is no way to get to the fault. The proxy works around this
issue by forcing the

status code for faults to 200; the player passes the body of the
response along with the

fault intact."

 

At US $6000 a pop per CPU (departmental license only - $20,000 per CPU
for enterprise license) across multiple high-availability data centers
you'd be looking down the barrel at more than US $50,000 ** to run a web
service proxy ** on a number of good machines.

 

So, does this effectively render Flex RPC services un-useable unless you
use Flex Data Services? .. unless you make the assumption that
everything always works ...

 

.. what happens when a non-200 status code is encountered?

 

... or have I got it wrong ... ??

 

Greg.

________________________________

This email and any files transmitted with it may be confidential and are
intended solely for the use of the individual or entity to whom they are
addressed. This email may contain personal information of individuals,
and be subject to Commonwealth and/or State privacy laws in Australia.
This email is also subject to copyright. If you are not the intended
recipient, you must not read, print, store, copy, forward or use this
email for any reason, in accordance with privacy and copyright laws. If
you have received this email in error, please notify the sender by
return email, and delete this email from your inbox. 

 

Reply via email to