You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-dev@ws.apache.org by "Sniff Xu (HangZhou)" <Sn...@viatech.com.cn> on 2002/07/25 11:25:37 UTC

Help me! MS Soap & Apache soap Interop

---------------
Environments: 
Machine 1: Apache SOAP2.3.1 (Works as SOAP Server), Tomcat4.1,  JDK1.3.1,
Windows2K
Machine 2: MS SOAP2 (Works as SOAP Client), Window2K 
==============
When Apache Soap works as Server and MS SOAP works as client, if the
invoking methods contains no parameters or returns such as void foo(void),
it works properly.

When Apache Soap works as Server, MS SOAP2 works as Server, there is
parameter in invoking methods such as void foo(string param) ,it works
improperly.

Please see my code and configuration:
1. Web Services Method:
package hello;
public class HelloParam {
  public void sayHelloTo(String name)  {
    System.out.println("sayHelloTo() have-param & no-return-value");
  }
}
-------------------------------
2. My Deloy Configuration File
<isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment"
id="WS:HaveParam">
  <isd:provider type="java" scope="Application" methods="sayHelloTo">
    <isd:java class="hello.HelloParam" static="false"/>
  </isd:provider>
 
<isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListene
r>
  <isd:mappings>
    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:x="WS:HaveParam" qname="x:A"
 
xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/>
   </isd:mappings>    
</isd:service>

Question: In some files I see xmlns:x=""( null), but it does not work here.
When execute: 
java org.apache.soap.server.ServiceManagerClient *URI* deploy **.xml
An error occurs. 
--------------------
3. SOAP Client (Simplified Code)
 Option Explicit
 Dim SC
 Dim Res
 Set SC = CreateObject("MSSOAP.SoapClient")
 Call SC.mssoapinit("HelloParam.wsdl",  "", "", "")
 SC.sayHelloTo("aa")
-----------------------
4. HelloParam.wsdl file
<?xml version='1.0' ?> 
<definitions  name='HelloParam' targetNamespace='WS:HaveParam'
	xmlns='http://schemas.xmlsoap.org/wsdl/' 
        xmlns:tns='WS:HaveParam_WSDL'
        xmlns:se='http://schemas.xmlsoap.org/soap/encoding/' 
        xmlns:xsd='http://www.w3.org/2000/10/XMLSchema'
        xmlns:so='http://schemas.xmlsoap.org/wsdl/soap/'>

  <message name='HelloParam.RetString'>
      <part name='A' type='xsd:string'/>
  </message>
  <message name='HelloParam.RetStringResponse'>
  </message>
  <portType name='HelloParamSoapPort'>
    <operation name='sayHelloTo' parameterOrder='A'>
      <input message='tns:HelloParam.RetString' />
      <output message='tns:HelloParam.RetStringResponse' />
    </operation>
  </portType>
  
   <binding name='HelloParam.Binding' type='tns:HelloParamSoapPort'>
      <so:binding style='rpc'
transport='http://schemas.xmlsoap.org/soap/http' />
      <operation name='sayHelloTo'>
          <so:operation soapAction=''/>
      <input>
        <so:body use="encoded" 
                   namespace="WS:HaveParam" 
 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <so:body use="encoded" 
                   namespace="WS:HaveParam"
 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>      
      </operation>
   </binding>

   <service name='HelloParam'>
      <port name='HelloParamSoapPort' binding='tns:HelloParam.Binding'>
          <so:address location='http://sniff:8080/soap/servlet/rpcrouter' />
      </port>
   </service>
</definitions>
==========================
Error message:
No Deserializer found to deserialize a ':name' using encoding style
'http://schemas.xmlsoap.org/soap/encoding/'.

Please help me!


Re: Apache SOAP and Axis

Posted by Scott Nichol <sn...@scottnichol.com>.
Most of the Apache SOAP developers moved to Axis a year ago, leading to,
e.g., the one year gap between the release of 2.2 and 2.3.  Products that
integrated SOAP, such as WebSphere, will move to Axis.

Certainly bug fixes will continue, but there will be a limit on the addition
of new features.  For example, Apache SOAP will probably not get WSDL
support, nor will it migrate to the SOAP 1.2 spec.

Scott Nichol

----- Original Message -----
From: "Agustinus Tedja" <ag...@infodesign-osd.de>
To: <so...@xml.apache.org>
Sent: Tuesday, July 30, 2002 8:19 AM
Subject: Apache SOAP and Axis


> With the emergence of Axis, does it mean that the Apache SOAP activities
> stop ?
> Thank you.
>
> Regards,
> Agustinus Tedja
> InfoDesign OSD
>
> --
> To unsubscribe, e-mail:   <ma...@xml.apache.org>
> For additional commands, e-mail: <ma...@xml.apache.org>
>
>


--
To unsubscribe, e-mail:   <ma...@xml.apache.org>
For additional commands, e-mail: <ma...@xml.apache.org>


Re: Apache SOAP and Axis

Posted by Scott Nichol <sn...@scottnichol.com>.
Most of the Apache SOAP developers moved to Axis a year ago, leading to,
e.g., the one year gap between the release of 2.2 and 2.3.  Products that
integrated SOAP, such as WebSphere, will move to Axis.

Certainly bug fixes will continue, but there will be a limit on the addition
of new features.  For example, Apache SOAP will probably not get WSDL
support, nor will it migrate to the SOAP 1.2 spec.

Scott Nichol

----- Original Message -----
From: "Agustinus Tedja" <ag...@infodesign-osd.de>
To: <so...@xml.apache.org>
Sent: Tuesday, July 30, 2002 8:19 AM
Subject: Apache SOAP and Axis


> With the emergence of Axis, does it mean that the Apache SOAP activities
> stop ?
> Thank you.
>
> Regards,
> Agustinus Tedja
> InfoDesign OSD
>
> --
> To unsubscribe, e-mail:   <ma...@xml.apache.org>
> For additional commands, e-mail: <ma...@xml.apache.org>
>
>


Apache SOAP and Axis

Posted by Agustinus Tedja <ag...@infodesign-osd.de>.
With the emergence of Axis, does it mean that the Apache SOAP activities
stop ?
Thank you.

Regards,
Agustinus Tedja
InfoDesign OSD

Apache SOAP and Axis

Posted by Agustinus Tedja <ag...@infodesign-osd.de>.
With the emergence of Axis, does it mean that the Apache SOAP activities
stop ?
Thank you.

Regards,
Agustinus Tedja
InfoDesign OSD

--
To unsubscribe, e-mail:   <ma...@xml.apache.org>
For additional commands, e-mail: <ma...@xml.apache.org>


Re: Help me! MS Soap & Apache soap Interop

Posted by Scott Nichol <sn...@scottnichol.com>.
> 2. My Deloy Configuration File
> <isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment"
> id="WS:HaveParam">
>   <isd:provider type="java" scope="Application" methods="sayHelloTo">
>     <isd:java class="hello.HelloParam" static="false"/>
>   </isd:provider>
>
>
<isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListene
> r>
>   <isd:mappings>
>     <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:x="WS:HaveParam" qname="x:A"
>
> xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/>
>    </isd:mappings>
> </isd:service>
>
> Question: In some files I see xmlns:x=""( null), but it does not work
here.
> When execute:
> java org.apache.soap.server.ServiceManagerClient *URI* deploy **.xml
> An error occurs.

Please post the error message so that we can help.  You *should* be able to
set xmlns:x="".  In fact, it is required for interoperability in this case.
I have not had problems with this; see
http://www.scottnichol.com/vbclienthiapachesoap.htm#stockquotedd.

> 4. HelloParam.wsdl file
> <?xml version='1.0' ?>
> <definitions  name='HelloParam' targetNamespace='WS:HaveParam'
> xmlns='http://schemas.xmlsoap.org/wsdl/'
>         xmlns:tns='WS:HaveParam_WSDL'
>         xmlns:se='http://schemas.xmlsoap.org/soap/encoding/'
>         xmlns:xsd='http://www.w3.org/2000/10/XMLSchema'
>         xmlns:so='http://schemas.xmlsoap.org/wsdl/soap/'>
>
>   <message name='HelloParam.RetString'>
>       <part name='A' type='xsd:string'/>
>   </message>
>   <message name='HelloParam.RetStringResponse'>
>   </message>
>   <portType name='HelloParamSoapPort'>
>     <operation name='sayHelloTo' parameterOrder='A'>
>       <input message='tns:HelloParam.RetString' />
>       <output message='tns:HelloParam.RetStringResponse' />
>     </operation>
>   </portType>
>
>    <binding name='HelloParam.Binding' type='tns:HelloParamSoapPort'>
>       <so:binding style='rpc'
> transport='http://schemas.xmlsoap.org/soap/http' />
>       <operation name='sayHelloTo'>
>           <so:operation soapAction=''/>
>       <input>
>         <so:body use="encoded"
>                    namespace="WS:HaveParam"
>
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
>       </input>
>       <output>
>         <so:body use="encoded"
>                    namespace="WS:HaveParam"
>
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
>       </output>
>       </operation>
>    </binding>
>
>    <service name='HelloParam'>
>       <port name='HelloParamSoapPort' binding='tns:HelloParam.Binding'>
>           <so:address location='http://sniff:8080/soap/servlet/rpcrouter'
/>
>       </port>
>    </service>
> </definitions>
> ==========================
> Error message:
> No Deserializer found to deserialize a ':name' using encoding style
> 'http://schemas.xmlsoap.org/soap/encoding/'.

This confuses me slightly.  The error message indicates that the server has
received a message with a parameter named 'name'.  However, the WSDL
indicates that the parameter is named 'A'.

Scott Nichol



--
To unsubscribe, e-mail:   <ma...@xml.apache.org>
For additional commands, e-mail: <ma...@xml.apache.org>


Re: Help me! MS Soap & Apache soap Interop

Posted by Scott Nichol <sn...@scottnichol.com>.
> 2. My Deloy Configuration File
> <isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment"
> id="WS:HaveParam">
>   <isd:provider type="java" scope="Application" methods="sayHelloTo">
>     <isd:java class="hello.HelloParam" static="false"/>
>   </isd:provider>
>
>
<isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListene
> r>
>   <isd:mappings>
>     <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:x="WS:HaveParam" qname="x:A"
>
> xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/>
>    </isd:mappings>
> </isd:service>
>
> Question: In some files I see xmlns:x=""( null), but it does not work
here.
> When execute:
> java org.apache.soap.server.ServiceManagerClient *URI* deploy **.xml
> An error occurs.

Please post the error message so that we can help.  You *should* be able to
set xmlns:x="".  In fact, it is required for interoperability in this case.
I have not had problems with this; see
http://www.scottnichol.com/vbclienthiapachesoap.htm#stockquotedd.

> 4. HelloParam.wsdl file
> <?xml version='1.0' ?>
> <definitions  name='HelloParam' targetNamespace='WS:HaveParam'
> xmlns='http://schemas.xmlsoap.org/wsdl/'
>         xmlns:tns='WS:HaveParam_WSDL'
>         xmlns:se='http://schemas.xmlsoap.org/soap/encoding/'
>         xmlns:xsd='http://www.w3.org/2000/10/XMLSchema'
>         xmlns:so='http://schemas.xmlsoap.org/wsdl/soap/'>
>
>   <message name='HelloParam.RetString'>
>       <part name='A' type='xsd:string'/>
>   </message>
>   <message name='HelloParam.RetStringResponse'>
>   </message>
>   <portType name='HelloParamSoapPort'>
>     <operation name='sayHelloTo' parameterOrder='A'>
>       <input message='tns:HelloParam.RetString' />
>       <output message='tns:HelloParam.RetStringResponse' />
>     </operation>
>   </portType>
>
>    <binding name='HelloParam.Binding' type='tns:HelloParamSoapPort'>
>       <so:binding style='rpc'
> transport='http://schemas.xmlsoap.org/soap/http' />
>       <operation name='sayHelloTo'>
>           <so:operation soapAction=''/>
>       <input>
>         <so:body use="encoded"
>                    namespace="WS:HaveParam"
>
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
>       </input>
>       <output>
>         <so:body use="encoded"
>                    namespace="WS:HaveParam"
>
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
>       </output>
>       </operation>
>    </binding>
>
>    <service name='HelloParam'>
>       <port name='HelloParamSoapPort' binding='tns:HelloParam.Binding'>
>           <so:address location='http://sniff:8080/soap/servlet/rpcrouter'
/>
>       </port>
>    </service>
> </definitions>
> ==========================
> Error message:
> No Deserializer found to deserialize a ':name' using encoding style
> 'http://schemas.xmlsoap.org/soap/encoding/'.

This confuses me slightly.  The error message indicates that the server has
received a message with a parameter named 'name'.  However, the WSDL
indicates that the parameter is named 'A'.

Scott Nichol