I think the problem I have got here is that Perl is really flexible
when it comes to making objects.

The WSDL is generated by hand, not automated.

This leaves a simple question...what services on the web allow public
access to methods that return a complex object?

Any ideas anyone?

Cheers,
Tom


On Mon, 14 Aug 2006 16:27:54 -0400, you wrote:

>Yeah, sorry, this is more of a Perl SOAP WSDL generation issue than a
>Flash issue I think.  I don't do the WSDL creation in .NET here, I have
>a .NET C# developer I work with.  Nobody here knows Perl SOPA WSDL
>creation in my group.  I do know that using native complex objects are
>fine with Flash and .NET produced WSDLs, and they semi-problematic in
>ColdFusion (according to some recent posts on this list - they
>recommended sticking with the straight XML response instead), but I know
>nothing of Perl-based WSDL SOAP requests.  I only know the basics of a
>SOAP WSDL format, so I couldn't begin to debug yours... sorry.  Have you
>compared your SOAP response to working ones on the Web?  
>
>Best of luck to you,  
>
>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 3:28 PM
>>>To: [email protected]
>>>Subject: Re: [Flashcoders] Flash 8 - Decoding a SOAP Response - Array
>of complex
>>>objects
>>>
>>>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: [email protected]
>>>>>>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
>>>>>>_______________________________________________
>>>>>>[email protected]
>>>>>>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
>>>_______________________________________________
>>>[email protected]
>>>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
>_______________________________________________
>[email protected]
>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
_______________________________________________
[email protected]
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

Reply via email to