Hi,

First :
        Java client -> .NET

        In .NET, your WS is wrote in document Style
        Your Java client usr RPC style !!!
        So if you use same SOAP style invocation, all will work fine.

        To see if the SOAP message is ok, you can use the wonderful
        tool : TCPMon or TCPTunnel.

Second :
        VBS client -> Java

        put this attribute on <body> element.
                SOAP-ENV:encodingStyle=""http://schemas.xmlsoap.org/soap/encoding/";
And try again,

Jean-Louis

-----Message d'origine-----
De : penguin [mailto:[EMAIL PROTECTED]]
Envoye : mercredi 25 septembre 2002 11:08
A : [EMAIL PROTECTED]
Objet : InterOp. between Java Client and .NET Web Service and vice versa



  Hi all,
  Please take a look and help me solving 2 problems
below:
First: between Java Client and .NET Web Service

- .NET Service Code:

namespace SoapExample
{
        public class
SimpleService:System.Web.Services.WebService
        {
                public SimpleService(){
                }
                protected override void Dispose(bool
disposing){
                }
                [System.Web.Services.WebMethod]
                public string echo(string str){
                        return  "Received: " + str;
                }
        }
}
if I run this service from web browser
(http://localhost/SoapExample/Service1.asmx?op=echo),
evrything is OK. It means that I received:
  <?xml version="1.0" encoding="utf-8" ?>
  <string xmlns="http://tempuri.org/";>Received:
myStringHere</string>

But if i use Java Client Code:
  public static void main(String[] args) throws
Exception{
    try{
      URL url = new
URL("http://localhost/SoapExample/Service1.asmx";);
      String name = "MyStringHere";

      SOAPMappingRegistry smc = new
SOAPMappingRegistry();

      StringDeserializer sd = new
StringDeserializer();
      smc.mapTypes(Constants.NS_URI_SOAP_ENC, new
QName("http://tempuri.org/","echoResult";),String.class,null,null,sd);
      SOAPHTTPConnection st = new
SOAPHTTPConnection();

      Call myCall = new Call();
      myCall.setSOAPTransport(st);
      myCall.setSOAPMappingRegistry(smc);

myCall.setTargetObjectURI("http://tempuri.org/";);
      myCall.setMethodName("echo");

myCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);

      Vector params = new Vector();
      params.addElement(new
Parameter("str",String.class,name,Constants.NS_URI_SOAP_ENC));
      myCall.setParams(params);

      Response resp = null;
      try{
        resp =
myCall.invoke(url,"http://tempuri.org/echo";);
      }catch(SOAPException sex){
        System.err.println("Caught SoapException: ("+
sex.getFaultCode()+" ): " + sex.getMessage() );
        System.exit(-1);
      }

      if((!resp.generatedFault()) && (resp != null)){

System.out.println(resp.getBodyPart(resp.getPartCount()-1).getContent().toSt
ring());
      }else{
        Fault fault = resp.getFault();
        System.err.println("Generate Fault: ");
        System.err.println("   Code  : " +
fault.getFaultCode());
        System.err.println("   String: " +
fault.getFaultString());
      }
    }catch(Exception e){
      e.printStackTrace();
    }
  }
I received this strange result:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
 <soap:Body>
  <echoResponse xmlns="http://tempuri.org/";>
   <echoResult>Received: </echoResult>
  </echoResponse>
 </soap:Body>
</soap:Envelope>
I expected to reveive "Received: MyStringHere", but
the "str" value disappeared. So my question is: WHERE
was the "str" value ()? Why did it happend ?


Second: In other hand, i do a contrary example, use
Apache SOAP Web Service with VB Client code:

Class test.SoapExample

  public class SoapExample {
    public SoapExample() {
    }
    public String echo(String str){
      return str;
    }
  }

test.vbs:

        myWebService
="http://localhost:8080/soap/servlet/rpcrouter";
        myMethod = "http://tempuri.org/echo";
        s = ""
        s = s & "<?xml version=""1.0""
encoding=""utf-8""?>" & vbCrLf
        s = s & "<SOAP-ENV:Envelope "
        s = s & "
xmlns:xsi=""http://www.w3c.org/2001/XMLSchema-instance""";
        s = s & "
xmlns:xsd=""http://www.w3c.org/2001/XMLSchema""";
        s = s & "
xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/"";>"
& vbCrLf
            s = s & "<SOAP-ENV:Header>" & vbCrLf

            s = s & "</SOAP-ENV:Header>" & vbCrLf

        s = s & "<SOAP-ENV:Body>" & vbCrLf
        s = s & "       <echo
xmlns=""http://tempuri.org/"";
SOAP-ENV:encodingStyle=""http://schemas.xmlsoap.org/soap/encoding/"";>"
& vbCrLf
        s = s & "           <str
xsi:type=""xsd:string"">MyStringHere</str>" & vbCrLf
        s = s & "       </echo>" & vbCrLf
        s = s & "   </SOAP-ENV:Body>" & vbCrLf
        s = s & "</SOAP-ENV:Envelope>" & vbCrLf

        MsgBox(s)
        set requestHTTP =
CreateObject("Microsoft.XMLHTTP")
        requestHTTP.open "POST", myWebService, False
        requestHTTP.setrequestheader "Content-Type",
"text/xml;charset=utf-8"
        requestHTTP.setrequestheader "SOAPAction",
myMethod
        requestHTTP.Send s

        set responseDoc = requestHTTP.responseXML

        MsgBox(responseDoc.xml)
        set requestHTTP = nothing

and after deploying the service: i have this info in
http://localhost:8080/soap/admin/index.html

'http://tempuri.org' Service Deployment Descriptor
Property Details:
ID:  http://tempuri.org
Scope:  Application
Provider Type:  java
Provider Class: test.SoapExample
Use Static Class: false
Methods: echo
Type Mappings:
Default Mapping Registry Class:

But i get the error when i run test.vbs

<?xml version="1.0">
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsi="http://www.w3c.org/2001/XMLSchema-instance";
xmlns:xsd="http://www.w3c.org/2001/XMLSchema";>
  <SOAP-ENV:Body>
    <SOAP-ENV:Fault>
      <faultcode>SOAP-ENV:Client</faultcode>
      <faultstring>No Deserializer found to
deserialize a "http://tempuri.org:str"; using encoding
style
"http://schemas.xmlsoap.org/soap/encoding/";.</faultstring>

<faultactor>/soapo/servlet/rpcrouter</faultactor>

    </SOAP-ENV:Fault>
  </SOAP-ENV:Body>

How could i solve this problem ? Please help me.
Thanks in advance.

P/s: if i use java client interacting with Apache Soap
Web service, and use test.vbs interacting with .NET
Web service, everything is OK.

__________________________________________________
Do you Yahoo!?
New DSL Internet Access from SBC & Yahoo!
http://sbc.yahoo.com

--
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]>

Reply via email to