I'm trying to access Django AMF views with Flex 3 RemoteObjects.

I'm debugging by printing out the HTTP request POST data both as raw
binary and as decoded by DjangoAMF.

For some reason DjangoAMF's request handler fails because the "target"
property of the AMF request body is always null. Shouldn't it contain
the service and method names?

In the Flash applet I always get a "Send failed" error message.

I have verified with DjangoAMF:s RemotingService client class that the
 test() remote function does receive requests and responds correctly.

What's the correct RemoteObject MXML syntax to correctly pass the
service name and method name as part of the AMF request?

Here's my mxml source:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
layout="vertical" xmlns:local="*">
  <mx:Panel width="100%" height="100%" title="amf test">
    <mx:TextArea id="result" width="100%" height="100%"></mx:TextArea>
    <mx:Button label="Submit" click="clickHandler()"/>
  </mx:Panel>
  <mx:RemoteObject
      id="myService"
      endpoint="http://localhost:8000/amf/";>
    
    <mx:method name="test" result="returnHandler(event)"
               fault="mx.controls.Alert.show(event.fault.faultString)"/>
  </mx:RemoteObject>
  <mx:Script>
    <![CDATA[
    import mx.rpc.events.ResultEvent;
    private function returnHandler(e:ResultEvent):void {
      result.text = e.result as String; }
    private function clickHandler():void { 
      myService.test(); }
    ]]>
  </mx:Script>
</mx:Application>

I've also tried to use the source= and destination= attribules for
RemoteObject and to compile with a corresponding services-confix.xml,
but the result is always the same.

This is the parsed body of the AMF HTTP POST:
target=null,response=/1,data=[{'body': {'_explicitType': ''},
'timestamp': 0, 'destination': '', 'clientId': None, 'headers':
{'DSId': 'nil', '_explicitType': ''}, 'timeToLive': 0,
'_explicitType': 'flex.messaging.messages.CommandMessage',
'messageId': '6814FD2E-69A8-D252-0A1C-B8834F6D5735', 'operation': 5,
'correlationId': ''}]

Here's the raw binary data of the POST:
\x00\x03\x00\x00\x00\x01\x00\x04null\x00\x02/1\x00\x00\x00\xcb\n
\x00\x00\x00\x01\x11\n\x81\x13Mflex.messaging.messages.CommandMessage
\x13operation\x1bcorrelationId\x0fheaders\x11clientId\x13messageId
\x15timeToLive\x13timestamp\x17destination\tbody\x04\x05\x06\x01\n
\x0b\x01\tDSId\x06\x07nil\x01\x01\x06I6814FD2E-69A8-D252-0A1C-
B8834F6D5735\x04\x00\x04\x00\x06\x01\n\x05\x01


Reply via email to