Hi Clem,

Use the SecureAMFChannel on the client and the SecureAMFEndpoint at the server. 
Make sure your endpoint URL is correct (starts with "https://...).

Seth

From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of gnu wolf
Sent: Wednesday, June 18, 2008 5:14 PM
To: [email protected]
Subject: Re: [flexcoders] Help on error: Invalid AMFX packet. Content must 
start with an <amfx> node

Hey Seth,

I'm not getting anything from the response, no headers and no status code. 
Pretty weird.

I had this request headers tho:

POST /samples/messagebroker/http HTTP/1.1
Host: localhost:9400
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.14) 
Gecko/20080404 Firefox/2.0.0.14
Accept: 
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Content-type: application/xml
Content-length: 653


It seems like it's still talking to the HTTP channel and not the AMF channel. 
If i'm using HTTPS, I should be talking to SecureAMFChannel, right?

I already enable SSL in my blazeDS tomcat and use a self-signed keystore file.



On Thu, Jun 19, 2008 at 7:50 AM, Seth Hodgson <[EMAIL PROTECTED]> wrote:
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: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of gnuwolf
Sent: Wednesday, June 18, 2008 10:45 AM

To: [email protected]
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