Hey Clem,

That raw request you're seeing is the client-side channel handshake with the 
server endpoint. This happens before any general messages/requests/data are 
shipped over the channel/endpoint connection. For some reason the response to 
this initial request isn't returning the server half of the handshake as valid 
AMFX. Do you see any other raw response info (say response headers and response 
status code) in addition to that odd body?

Once this initial connect-time handshake is working, the SOAP request will be 
sent to the server where it'll be proxied through to the actual target SOAP 
endpoint.

Seth

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of gnuwolf
Sent: Wednesday, June 18, 2008 10:45 AM
To: flexcoders@yahoogroups.com
Subject: RE: [flexcoders] Help on error: Invalid AMFX packet. Content must 
start with an <amfx> node

Hi Seth,
 
Thanks for replying.
 
I'm creating a webservices client for Netsuite.
 
The usual SOAP request for login operation would look something like this:
 
   <soapenv:Body>
      <platformMsgs:login
          xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
          xmlns:xs="http://www.w3.org/2001/XMLSchema";
          xmlns:platformCore="urn:core_2008_1.platform.webservices.netsuite.com"
          
xmlns:platformMsgs="urn:messages_2008_1.platform.webservices.netsuite.com">
         <platformMsgs:passport>
            <platformCore:email>[EMAIL PROTECTED]</platformCore:email>
            <platformCore:password>mypassword</platformCore:password>
            <platformCore:account>724168</platformCore:account>
         </platformMsgs:passport>
      </platformMsgs:login>
   </soapenv:Body>
 
 
Raw request from charles is this:
 
<amfx ver="3" xmlns="http://www.macromedia.com/2005/amfx";>
            <body>
                        <object type="flex.messaging.messages.CommandMessage">
                                    <traits>
                                                <string>body</string>
                                                <string>clientId</string>
                                                <string>correlationId</string>
                                                <string>destination</string>
                                                <string>headers</string>
                                                <string>messageId</string>
                                                <string>operation</string>
                                                <string>timestamp</string>
                                                <string>timeToLive</string>
                                    </traits>
                                    <object>
                                                <traits/>
                                    </object>
                                    <null/>
                                    <string/>
                                    <string/>
                                    <object>
                                                <traits>
                                                            
<string>DSId</string>
                                                            
<string>DSMessagingVersion</string>
                                                </traits>
                                                <string>nil</string>
                                                <int>1</int>
                                    </object>
                                    
<string>473AC219-432D-44B1-76AC-9CA3030ED6BA</string>
                                    <int>5</int>
                                    <int>0</int>
                                    <int>0</int>
                        </object>
            </body>
</amfx>
 
Raw response was blank or some character like this:  
________________________________________
 
Error from the flash debugger is this:
 
[MessagingError message='Invalid AMFX packet. Content must start with an <amfx> 
node']
            at 
mx.messaging.channels.amfx::AMFXDecoder$/decodePacket()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\amfx\AMFXDecoder.as:149]
            at 
mx.messaging.channels.amfx::AMFXDecoder/decode()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\amfx\AMFXDecoder.as:91]
            at 
mx.messaging.channels::HTTPChannel/decodePacket()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\HTTPChannel.as:539]
            at 
mx.messaging.channels::HTTPChannel/pingCompleteHandler()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\HTTPChannel.as:551]
            at 
ChannelRequestLoader/callEventCallback()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\HTTPChannel.as:1158]
            at 
ChannelRequestLoader/completeHandler()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\HTTPChannel.as:1194]
            at flash.events::EventDispatcher/dispatchEventFunction()
            at flash.events::EventDispatcher/dispatchEvent()
            at flash.net::URLLoader/onComplete()
 
I didn't touch services-config.xml tho. Do I need to edit the endpoint in the 
channel definition?
 
Thanks.
 
Cheers,
Clem 

Reply via email to