You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@ws.apache.org by Oliver Rettig <Ol...@telda.net> on 2001/06/22 14:35:39 UTC

problemen with string[] as argument on ms-client invoking apache soap-server

Hi,

always problems with invoking commands with String[] as argument:

This is my wsdl:

<?xml version="1.0" encoding='UTF-8'?>

<definitions name="urn:KlickBlickOperator"
             targetNamespace="urn:KlickBlickOperator"
             xmlns:tns="urn:KlickBlickOperator"
             xmlns:typens="urn:xml-klickblick"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
             xmlns="http://schemas.xmlsoap.org/wsdl/">

  <types>
    <xsd:schema targetNamespace="urn:KlickBlickOperator"

xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/'
                elementFormDefault='qualified'>
      <xsd:complexType name='ArrayOfstring'>
        <xsd:complexContent>
          <xsd:restriction base='SOAP-ENC:Array'>
            <xsd:attribute ref="SOAP-ENC:arrayType"
arrayType="xsd:string[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
    </xsd:schema>
  </types>

  <!-- message declns -->
  <message name='stringResponse'>
    <part name='Result' type='xsd:string'/>
  </message>
  <message name='stringArrayRequest'>
    <part name='arg0' type='tns:ArrayOfstring'/>
  </message>
  <message name='stringArrayResponse'>
    <part name='arg0' type='tns:ArrayOfstring'/>
  </message>
 <!-- port type declns -->
  <portType name="KlickBlickOperator">
    <operation name='dummy1'>
        <input message='stringArrayRequest'/>
        <output message='stringArrayResponse'/>
    </operation>
    <operation name='dummy2'>
        <input message='stringArrayRequest'/>
        <output message='stringResponse'/>
    </operation>
  </portType>

  <!-- binding declns -->
  <binding name="KlickBlickSOAPBinding" type="KlickBlickOperator">
    <soap:binding style="rpc"
                  transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="dummy1">
      <soap:operation soapAction=""/>
      <input>
      <soap:body use="encoded"
                   namespace="urn:KlickBlickOperator"

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded"
                   namespace="urn:KlickBlickOperator"

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="dummy2">
      <soap:operation soapAction=""/>
      <input>
      <soap:body use="encoded"
                   namespace="urn:KlickBlickOperator"

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded"
                   namespace="urn:KlickBlickOperator"

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
  </binding>

<!-- service decln -->
  <service name="KlickBlickOperator">
    <port name="KlickBlickOperator" binding="KlickBlickSOAPBinding">
      <soap:address location="http://server/soap/servlet/rpcrouter"/>
    </port>
  </service>

</definitions>

Invoking of both methods: dummy1, dummy2 results the following
error-message:

Invoke of dummy (array) method faild: Client: Type conversion failure
for element arg0.

Has somebody an idea what can be wrong. Is there a fault in the wsdl. Or
has somedody some code examples for a ms-client?

Thanks for help

cheers

Oliver

RE: problemen with string[] as argument on ms-client invoking apache soap-server

Posted by Shu <sh...@esker.fr>.
Hello Oliver,

>From your previous e-mail,  I think that you use MS SoapToolkit C++ version
to implement your Client.
In this case, a parameter (or response value) of Array type must be a
SAFEARRAY type.
Perhaps didn't you use this when invoking SOAP call?

Herve

> -----Message d'origine-----
> De : oliver@jupiter.esker.fr [mailto:oliver@jupiter.esker.fr]De la part
> de Oliver Rettig
> Envoye : vendredi 22 juin 2001 14:36
> A : soap
> Objet : problemen with string[] as argument on ms-client invoking apache
> soap-server
>
>
> Hi,
>
> always problems with invoking commands with String[] as argument:
>
> This is my wsdl:
>
> <?xml version="1.0" encoding='UTF-8'?>
>
> <definitions name="urn:KlickBlickOperator"
>              targetNamespace="urn:KlickBlickOperator"
>              xmlns:tns="urn:KlickBlickOperator"
>              xmlns:typens="urn:xml-klickblick"
>              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>              xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>              xmlns="http://schemas.xmlsoap.org/wsdl/">
>
>   <types>
>     <xsd:schema targetNamespace="urn:KlickBlickOperator"
>
> xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/'
>                 elementFormDefault='qualified'>
>       <xsd:complexType name='ArrayOfstring'>
>         <xsd:complexContent>
>           <xsd:restriction base='SOAP-ENC:Array'>
>             <xsd:attribute ref="SOAP-ENC:arrayType"
> arrayType="xsd:string[]"/>
>           </xsd:restriction>
>         </xsd:complexContent>
>       </xsd:complexType>
>     </xsd:schema>
>   </types>
>
>   <!-- message declns -->
>   <message name='stringResponse'>
>     <part name='Result' type='xsd:string'/>
>   </message>
>   <message name='stringArrayRequest'>
>     <part name='arg0' type='tns:ArrayOfstring'/>
>   </message>
>   <message name='stringArrayResponse'>
>     <part name='arg0' type='tns:ArrayOfstring'/>
>   </message>
>  <!-- port type declns -->
>   <portType name="KlickBlickOperator">
>     <operation name='dummy1'>
>         <input message='stringArrayRequest'/>
>         <output message='stringArrayResponse'/>
>     </operation>
>     <operation name='dummy2'>
>         <input message='stringArrayRequest'/>
>         <output message='stringResponse'/>
>     </operation>
>   </portType>
>
>   <!-- binding declns -->
>   <binding name="KlickBlickSOAPBinding" type="KlickBlickOperator">
>     <soap:binding style="rpc"
>                   transport="http://schemas.xmlsoap.org/soap/http"/>
>     <operation name="dummy1">
>       <soap:operation soapAction=""/>
>       <input>
>       <soap:body use="encoded"
>                    namespace="urn:KlickBlickOperator"
>
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
>       </input>
>       <output>
>         <soap:body use="encoded"
>                    namespace="urn:KlickBlickOperator"
>
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
>       </output>
>     </operation>
>     <operation name="dummy2">
>       <soap:operation soapAction=""/>
>       <input>
>       <soap:body use="encoded"
>                    namespace="urn:KlickBlickOperator"
>
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
>       </input>
>       <output>
>         <soap:body use="encoded"
>                    namespace="urn:KlickBlickOperator"
>
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
>       </output>
>     </operation>
>   </binding>
>
> <!-- service decln -->
>   <service name="KlickBlickOperator">
>     <port name="KlickBlickOperator" binding="KlickBlickSOAPBinding">
>       <soap:address location="http://server/soap/servlet/rpcrouter"/>
>     </port>
>   </service>
>
> </definitions>
>
> Invoking of both methods: dummy1, dummy2 results the following
> error-message:
>
> Invoke of dummy (array) method faild: Client: Type conversion failure
> for element arg0.
>
> Has somebody an idea what can be wrong. Is there a fault in the wsdl. Or
> has somedody some code examples for a ms-client?
>
> Thanks for help
>
> cheers
>
> Oliver
>


RE: problemen with string[] as argument on ms-client invoking apache soap-server

Posted by Shu <sh...@esker.fr>.
Hello Oliver,

>From your previous e-mail,  I think that you use MS SoapToolkit C++ version
to implement your Client.
In this case, a parameter (or response value) of Array type must be a
SAFEARRAY type.
Perhaps didn't you use this when invoking SOAP call?

Herve

> -----Message d'origine-----
> De : oliver@jupiter.esker.fr [mailto:oliver@jupiter.esker.fr]De la part
> de Oliver Rettig
> Envoye : vendredi 22 juin 2001 14:36
> A : soap
> Objet : problemen with string[] as argument on ms-client invoking apache
> soap-server
>
>
> Hi,
>
> always problems with invoking commands with String[] as argument:
>
> This is my wsdl:
>
> <?xml version="1.0" encoding='UTF-8'?>
>
> <definitions name="urn:KlickBlickOperator"
>              targetNamespace="urn:KlickBlickOperator"
>              xmlns:tns="urn:KlickBlickOperator"
>              xmlns:typens="urn:xml-klickblick"
>              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>              xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>              xmlns="http://schemas.xmlsoap.org/wsdl/">
>
>   <types>
>     <xsd:schema targetNamespace="urn:KlickBlickOperator"
>
> xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/'
>                 elementFormDefault='qualified'>
>       <xsd:complexType name='ArrayOfstring'>
>         <xsd:complexContent>
>           <xsd:restriction base='SOAP-ENC:Array'>
>             <xsd:attribute ref="SOAP-ENC:arrayType"
> arrayType="xsd:string[]"/>
>           </xsd:restriction>
>         </xsd:complexContent>
>       </xsd:complexType>
>     </xsd:schema>
>   </types>
>
>   <!-- message declns -->
>   <message name='stringResponse'>
>     <part name='Result' type='xsd:string'/>
>   </message>
>   <message name='stringArrayRequest'>
>     <part name='arg0' type='tns:ArrayOfstring'/>
>   </message>
>   <message name='stringArrayResponse'>
>     <part name='arg0' type='tns:ArrayOfstring'/>
>   </message>
>  <!-- port type declns -->
>   <portType name="KlickBlickOperator">
>     <operation name='dummy1'>
>         <input message='stringArrayRequest'/>
>         <output message='stringArrayResponse'/>
>     </operation>
>     <operation name='dummy2'>
>         <input message='stringArrayRequest'/>
>         <output message='stringResponse'/>
>     </operation>
>   </portType>
>
>   <!-- binding declns -->
>   <binding name="KlickBlickSOAPBinding" type="KlickBlickOperator">
>     <soap:binding style="rpc"
>                   transport="http://schemas.xmlsoap.org/soap/http"/>
>     <operation name="dummy1">
>       <soap:operation soapAction=""/>
>       <input>
>       <soap:body use="encoded"
>                    namespace="urn:KlickBlickOperator"
>
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
>       </input>
>       <output>
>         <soap:body use="encoded"
>                    namespace="urn:KlickBlickOperator"
>
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
>       </output>
>     </operation>
>     <operation name="dummy2">
>       <soap:operation soapAction=""/>
>       <input>
>       <soap:body use="encoded"
>                    namespace="urn:KlickBlickOperator"
>
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
>       </input>
>       <output>
>         <soap:body use="encoded"
>                    namespace="urn:KlickBlickOperator"
>
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
>       </output>
>     </operation>
>   </binding>
>
> <!-- service decln -->
>   <service name="KlickBlickOperator">
>     <port name="KlickBlickOperator" binding="KlickBlickSOAPBinding">
>       <soap:address location="http://server/soap/servlet/rpcrouter"/>
>     </port>
>   </service>
>
> </definitions>
>
> Invoking of both methods: dummy1, dummy2 results the following
> error-message:
>
> Invoke of dummy (array) method faild: Client: Type conversion failure
> for element arg0.
>
> Has somebody an idea what can be wrong. Is there a fault in the wsdl. Or
> has somedody some code examples for a ms-client?
>
> Thanks for help
>
> cheers
>
> Oliver
>