Hi Jason, Im using Perl with Apach2-SOAP under mod_perl.
If you are sending objects back and forth then I dont see why I should be having problems. It must be a problem with my WSDL or Perl SOAP Response. Since flash decodes the response according to the WSDL file then it seems likely there is a problem with this bit. I have included the WSDL file and a copy of the request and response. Does the response look vastly different for an array of objects that you might expect to see on your working Flash/SOAP project? This is an example and triggers my problem and is as short as I could make it. ----- snip 8< ------ Request <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body xmlns:ns1="http://ice.zerofiveone.com/Objecttest"> <ns1:getPeople SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <author xsi:type="xsd:int"></author> </ns1:getPeople> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Response <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:namesp2="http://xml.apache.org/xml-soap" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <namesp6:getPeopleResponse xmlns:namesp6="http://ice.zerofiveone.com/Objecttest"> <SOAP-ENC:Array xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="namesp2:SOAPStruct[3]"> <item xsi:type="namesp2:SOAPStruct"> <name xsi:type="xsd:string">Tom</name> <age xsi:type="xsd:int">24</age> </item> <item xsi:type="namesp2:SOAPStruct"> <name xsi:type="xsd:string">Chris</name> <age xsi:type="xsd:int">26</age> </item> <item xsi:type="namesp2:SOAPStruct"> <name xsi:type="xsd:string">Andrew</name> <age xsi:type="xsd:int">56</age> </item> </SOAP-ENC:Array> </namesp6:getPeopleResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> And finally the WSDL - I tried to keep this as short as possible for this example. <?xml version="1.0"?> <definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:si="http://soapinterop.org/xsd" xmlns:tns="http://ice.zerofiveone.com/Objecttest" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://ice.zerofiveone.com/Objecttest"> <types> <xsd:schema targetNamespace="http://ice.zerofiveone.com/Objecttest"> <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" /> <xsd:complexType name="Person"> <xsd:all> <xsd:element name="name" type="xsd:string" /> <xsd:element name="age" type="xsd:string" /> </xsd:all> </xsd:complexType> <xsd:complexType name="PersonArray"> <xsd:complexContent> <xsd:restriction base="SOAP-ENC:Array"> <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:Person[]" /> </xsd:restriction> </xsd:complexContent> </xsd:complexType> </xsd:schema> </types> <message name="getPeopleRequest"> <part name="author" type="xsd:int" /> </message> <message name="getPeopleResponse"> <part name="return" type="tns:PersonArray" /> </message> <portType name="ObjecttestPortType"> <operation name="getPeople"> <input message="tns:getPeopleRequest" /> <output message="tns:getPeopleResponse" /> </operation> </portType> <binding name="ObjecttestBinding" type="tns:ObjecttestPortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> <operation name="getPeople"> <soap:operation soapAction="http://ice.zerofiveone.com/Objecttest/getPeople" style="rpc" /> <input> <soap:body use="encoded" namespace="http://ice.zerofiveone.com/Objecttest" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </input> <output> <soap:body use="encoded" namespace="http://ice.zerofiveone.com/Objecttest" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </output> </operation> </binding> <service name="Objecttest"> <port name="ObjecttestPort" binding="tns:ObjecttestBinding"> <soap:address location="http://ice.zerofiveone.com/Objecttest/soap" /> </port> </service> </definitions> Id really apprecaite any help with this one. Im completely suck :) Cheers, Tom On Mon Aug 14 10:45:06 2006, in you wrote: >What are you using on your backend? .NET? ColdFusion? If .NET, yes, >you can easily send objects back and forth. It serializes as SOAP >formatted XML inbetween, but you'll never notice. You can read an object >with arrays, set properties, and send it back. I can't send you our >SOAP message because it might be considered propriety bank information >(even though it's not really), but there are some tutorials on the web> > >http://www.sephiroth.it/tutorials/flashPHP/webServiceConnector/ > >Here is the WSDL is uses: > >http://www.xmethods.net/sd/2001/BabelFishService.wsdl > >Here is some code I use to test loading in an object from a wsdl SOAP >object from .NET > >import mx.services.*; > >function startmyws():Void{ > ws = new WebService("http://blahblahurl/theService.asmx?WSDL"); > ws.onLoad = trace("The webservice loaded fine."); > methodResultObj = ws.GetProject(0); > methodResultObj.onResult = showResult; > methodResultObj.onFault = function(fault) { > trace("!! Flash Web Services Component Error. \n Fault Code: >"+fault.faultcode + ", Fault: " + fault.faultstring); > } >} > >function showResult(projObj:Object){ > //test object value: > theVar = projObj.Content.Topics[0].TextAreas[0].Content > trace(theVar) >} > >startmyws(); > >Don't bother with parsing through XML if you are using .NET. And wash >those socks. :) > >Jason Merrill >Bank of America >Learning & Organization Effectiveness - Technology Solutions > > > > > > >>>-----Original Message----- >>>From: [EMAIL PROTECTED] [mailto:flashcoders- >>>[EMAIL PROTECTED] On Behalf Of Tom Shaw >>>Sent: Monday, August 14, 2006 9:29 AM >>>To: flashcoders@chattyfig.figleaf.com >>>Subject: [Flashcoders] Flash 8 - Decoding a SOAP Response - Array of >complex >>>objects >>> >>>Hi all, This is my first post on the list so Ill say hi now and hope >>>you are all friendly :) >>> >>>Ive been going round for days on this one and have searched high and >>>low for an answer. I even looked under the bed but all I found was >>>smelly socks, so before I actually go mad could anyone shed some light >>>on this rather annoying problem with Flash 8 Pro. >>> >>>I have a SOAP server set up under mod_perl which delivers an array of >>>objects. >>> >>>To avoid reinventing the wheel I wanted Flash to decode the SOAP >>>response from the server. the result Im actually getting is an array >>>of XML Objects. >>> >>>I could parse these XML objects but then I might as well and decode >>>the entire response manually anyway. the overhead for getting flash >>>to decode the object has already been incurred so Id really like to >>>figure this out. >>> >>>Now while this might seem trivial I do want to return some rather more >>>complex objects so this has effetively stopped my development for now. >>> >>>I dont want to go down the path with flash Remoting at the minute but >>>for those who might suggest it I have considered it and may implement >>>it in the future. >>> >>>If anyone is getting Flash to fully decode Arrays of Objects or any >>>other remotely complex data structure could they please post their >>>SOAP response and reply for me to study so I can try and find out what >>>exactly is wrong. >>> >>>I have a few more questions to ask but for clarity Ill leave these for >>>another day. >>> >>>Im not sure if posting my SOAP reply would help at this point...I will >>>create a simple example and post it shortly. >>> >>>Id really appreciate some help here so Ill cross my fingers and hope >>>for the best. >>> >>>Cheers, >>>Tom >>>_______________________________________________ >>>Flashcoders@chattyfig.figleaf.com >>>To change your subscription options or search the archive: >>>http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >>> >>>Brought to you by Fig Leaf Software >>>Premier Authorized Adobe Consulting and Training >>>http://www.figleaf.com >>>http://training.figleaf.com _______________________________________________ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com