I had similar issues trying to get the Flash 1.1 Remoting to work, just couldn’t get the license to work unless I deployed the full Flex libs.  It was also never clear to me if this was a violation of the license agreement or not.

 

So I have always gone with option number 1.  I have really wanted to get involved with OpenAMF and get some of my own customizations back into that tree, but just have been too busy.  Anyways, you should only have to make a single change to the source code to get OpenAMF completely working with Flex.

 

OpenAMF, as well as Flash Remoting 1.0, return a standard Object for any complex types that you don’t define in their respective config files.  Flex and 1.1 return a custom class data type with the value being the full Java classname of the server side object.  This then allows the serialization from the java class to a specified RemoteObject on the client side.

 

The last time I did this it was with 1.0RC11.  In org.openamf.io.AMFSerializer I replace lines 225 through 233 with this code:

 

outputStream.writeByte(AMFBody.DATA_TYPE_CUSTOM_CLASS);

outputStream.writeUTF(object.getClass().getName());

 

and it all works…  You will of course need to use some other standard OpenAMF configurations to make sure your services are as protected as they are with Flex, such as setting up the AdvancedGateway.

 

I hate to play salesman, but I also have created a tool that is very helpful when debugging all of this.  It allows you to easily view all of the AMF traffic on your computer.  You may want to check it out here:  http://www.kevinlangdon.com/serviceCapture

 


From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Alon J Salant
Sent: Friday, October 21, 2005 6:39 PM
To: [email protected]
Subject: [flexcoders] Issues using standalone Flash Remoting with Flex 1.5

 

Hey all,

 

I’m wondering what experience the group has with using Flex 1.5 with servers running Flash Remoting but not Flex. I’d like to distribute my application processing across a number of servers running Flash Remoting and have fewer Flex servers. I have experimented with a couple options:

 

  1. OpenAMF

    Using OpenAMF with Flex requires abandoning the <RemoteObject> tag and using the ActionScript Remoting libraries. This is because the Flex client sends AMF messages in a different structure (they are wrapped in an envelope that contains metadata) than Flash Remoting v1 or the standalone Remoting client libraries. With this resolved with a couple hacks to OpenAMF, I still found that the AMF responses from OpenAMF differed enough from the Flash Remoting implementation provided by Flex that I could not use it as a drop-in replacement. For simple messages, OpenAMF worked fine but for complex messages with cyclical references, the behavior was different. Some work there for the OpenAMF team but for now I need to put aside this option.
  2. Flash Remoting v1.1

    This is what I will call the version of Flash Remoting bundled with Flex 1.5. I believe that there has not been a standalone release of this version. However, there is documentation on using this version on the Macromedia site: http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=46f3d4ac.

    This document implies that you can use the flashgateway.jar file provided with Flex and use it with an existing Flash Remoting serial number. I have successfully configured Flash Remoting using this jar and a gateway-config.xml file in a webapp without Flex running. However, Flash Remoting runs in developer mode. This is true even when I configure the gateway with a valid serial number as documented in the above technote. That kinda sucks. Has anyone run in to this?

 

Alon




--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com




YAHOO! GROUPS LINKS




Reply via email to