Problems using ZSI web service from .NET

Discussion in 'Python' started by Michiel, Jan 22, 2004.

  1. Michiel

    Michiel Guest

    Hello,

    I am not sure this is the right place to ask. I tried the ZSI mailing
    list, but got no response there.

    My goal is to write some web services with ZSI to be used by a client
    written in .NET. I'm using ZSI 1.2.7 (this was easy to install on my
    Debian system).

    I have no problem with functions with parameters and return values
    with simple types, but I am having a hell of a time moving a simple
    array.

    My web service is taken from the zsi examples:

    ______________________________
    #!/usr/bin/python

    def echo(s):
    return s

    from ZSI import dispatch
    dispatch.AsCGI()
    ______________________________


    I want to invoke the echo function with an array of strings as a
    parameter and I want it to give me an array back. I had a lot of
    trouble putting together a WSDL file that was properly imported by
    Visual Studio (without turning my string arrays into single strings),
    but with the help of many google searches, I finally came to a
    description with the following schema:

    ______________________________
    <schema
    targetNamespace="https://secure6.wwwcomm.com/admin/soap/DomainKiller/bin/DomainKiller.xsd"
    xmlns="http://www.w3.org/2001/XMLSchema"
    >

    <complexType name="ArrayOfString">
    <complexContent>
    <restriction base="soapenc:Array">
    <sequence>
    <element name="item" type="string" minOccurs="0"
    maxOccurs="unbounded" nillable="true"/>
    </sequence>
    <attribute ref="soapenc:arrayType"
    wsdl:arrayType="xsd:string[]"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/>
    </restriction>
    </complexContent>
    </complexType>
    </schema>
    ______________________

    For brevity, I've left out the rest of the wsdl file. Messages for
    parameters and return value of echo are defined as having the above
    type ArrayOfString.

    Now, it seems that ZSI doesn't like what my .NET client is sending it.

    Request from .NET app:

    ______________________________________________
    <?xml version="1.0" encoding="utf-8" ?>
    <soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:tns="https://secure6.wwwcomm.com/admin/soap/DomainKiller/bin/DomainKiller.wsdl"
    xmlns:types="https://secure6.wwwcomm.com/admin/soap/DomainKiller/bin/DomainKiller.wsdl/encodedTypes"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" >

    <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <echo>
    <s href="#id1" />
    </echo>
    <soapenc:Array id="id1" soapenc:arrayType="xsd:string[2]">
    <Item>s1</Item>
    <Item>s2</Item>
    </soapenc:Array>
    </soap:Body>

    </soap:Envelope>
    _______________________________________________

    The response from the ZSI cgi:

    _______________________________________________
    <SOAP-ENV:Envelope
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:ZSI="http://www.zolera.com/schemas/ZSI/"
    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >
    <SOAP-ENV:Body>
    <SOAP-ENV:Fault>
    <faultcode>SOAP-ENV:Client</faultcode>
    <faultstring>Unparseable message</faultstring>
    <detail>
    <ZSI:parseFaultDetail>
    <ZSI:string>Any cannot parse untyped element</ZSI:string>
    <ZSI:trace>/soap:Envelope/soap:Body/soapenc:Array/Item[1]</ZSI:trace>
    </ZSI:parseFaultDetail>

    </detail>
    </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    _________________________________________________


    For comparison, a simple ZSI client works fine and this is the dialog:

    _________________________________ Tue Jan 20 13:38:34 2004 REQUEST:
    <SOAP-ENV:Envelope
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:ZSI="http://www.zolera.com/schemas/ZSI/"
    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >
    <SOAP-ENV:Body>
    <echo>
    <E403ee28c SOAP-ENC:arrayType="xsd:anyType[3]">
    <SOAP-ENC:string id="401f8b00">1</SOAP-ENC:string>
    <SOAP-ENC:string id="40219520">2</SOAP-ENC:string>
    <SOAP-ENC:string id="40219560">3</SOAP-ENC:string>
    </E403ee28c>
    </echo>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

    _________________________________ Tue Jan 20 13:38:36 2004 RESPONSE:
    Date: Tue, 20 Jan 2004 18:38:35 GMT
    Server: Apache/1.3.26 Ben-SSL/1.48 (Unix) Debian GNU/Linux PHP/4.1.2
    mod_perl/1.26
    Content-Length: 664
    Content-Type: text/xml; charset="utf-8"

    <SOAP-ENV:Envelope
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:ZSI="http://www.zolera.com/schemas/ZSI/"
    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >
    <SOAP-ENV:Body>
    <echoResponse>
    <E4050908c SOAP-ENC:arrayType="xsd:anyType[3]">
    <SOAP-ENC:string id="404ea950">1</SOAP-ENC:string>
    <SOAP-ENC:string id="404eaa10">2</SOAP-ENC:string>
    <SOAP-ENC:string id="404eaae8">3</SOAP-ENC:string>
    </E4050908c>
    </echoResponse>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

    _____________________________________


    It seems the arguments to echo have types here.

    Can I get .NET to do the same? Can this be done through the WSDL file?
    Or else, how can I send arrays back and forth?

    Thank you,

    Michiel van Wessem
    Michiel, Jan 22, 2004
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Russell
    Replies:
    0
    Views:
    460
    Russell
    Aug 19, 2003
  2. Adil Hasan
    Replies:
    3
    Views:
    1,106
    John J. Lee
    Jan 29, 2004
  3. Jaroslaw Zabiello

    ZSI, SOAP and .NET web services - problem

    Jaroslaw Zabiello, Mar 22, 2007, in forum: Python
    Replies:
    9
    Views:
    2,158
    Ravi Teja
    Mar 27, 2007
  4. Stevo

    ZSI Web Service Call

    Stevo, Jul 3, 2007, in forum: Python
    Replies:
    0
    Views:
    594
    Stevo
    Jul 3, 2007
  5. Jennifer Duerr

    SOAP/ZSI post/get for Java Web App

    Jennifer Duerr, May 13, 2008, in forum: Python
    Replies:
    2
    Views:
    939
    Jennifer Duerr
    May 14, 2008
Loading...

Share This Page