Are you coercing the Array to a String (say, via simple concatenation)
in a trace()? Perhaps associative Array keys aren't shown when
"toString" in Flash... can you try a for in loop instead? Or as a quick
test do trace(result["key1"]).

The conversion of Map -> ECMA Array is a legacy behavior from Flash
Remoting that we should consider making configurable in the next release
of Flex as people would like to be able to do Map -> Object since it is
a more useful type (associative arrays doesn't behave much like an
Array) and allows you do use dot-syntax. Note that Map keys are
"toString"'ed too as per the requirements for AMF / AS2 types.




-----Original Message-----
From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Joe Berkovitz
Sent: Friday, May 20, 2005 1:59 PM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] deserializing Maps with AMF (RemoteObject)

I can't for the life of me seem to pass a java.util.Map back from a 
RemoteObject call.  The data comes back as an empty array object ([]) 
rather than as an untyped object.

Anyone encountered this problem?

I have tried return-typing the method as HashMap and Object as well, no 
dice in any case.

Here is my remote method that is being invoked:

     public Map test3()
     {
         HashMap map = new HashMap();
         map.put("key1", "val1");
         map.put("key2", "val2");
         return map;
     }


Server trace looks like this:

Info: Processing batch of 1 request(s)
Info: Requesting target 'testServer.test3'
Info: Service 'com.allurent.arcx.test.TestServer' sent to adapter 'Java 
Class Adapter'
Info: Completed 'testServer.test3' with reply method 'onResult' in 10ms
Info: Serializing response
   (Message #0 targetURI=/2/onResult, responseURI=null)
     (ECMA Array #0)
       key1 = "val1"
       key2 = "val2"

Client trace looks like this:

[trace] 5/20 12:40:52 [INFO] RemoteObject_AMF: Invoking test3 on
testServer
[trace] 5/20 12:40:52 [INFO] RemoteObject_AMF: testServer.test3() 
returned []  // where's my data, dude?



 
Yahoo! Groups Links



 




 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to