Unfortunately this is a pain in the @!##@ for us and not for the two "camps"....the basic problem is that the Apache soap toolkit MUST have a type attribute on ALL parameters...The Microsoft SOAP toolkit does not require this...(which makes sense because the parameter type is described in the wsdl....anyways...) So if you're a microsoft CLIENT you must use the low level api to construct your SOAP call so you can add the type parameter.....I saw some code somewhere that showed how to modify the Apache SOAP toolkit to get around this problem from the server side but I haven't tried it and I'm not sure if this would affect other implementations on your server....If you're a Java client calling a MS server you must add a SOAPMappingRegistry to the Call with the appropriate deserializer...there is an interop section in both the Apache site and the MSDN site....do a little digging and you'll find it..
good luck Doug "Sniff Xu (HangZhou)" To: [EMAIL PROTECTED] <[EMAIL PROTECTED] cc: (bcc: Doug Swanson/US-Corporate/3M/US) om.cn> Subject: Help me! MS Soap & Apache soap Interop 07/25/2002 04:25 AM Please respond to soap-dev --------------- 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! -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>