I have used TcpTunnel and here is what MS SOAP sends to Apache SOAP:

POST /soap/servlet/rpcrouter HTTP/1.1Content-Type: text/xml;
charset="UTF-8"Host: manserv2SOAPAction: ""Content-Length: 253<?xml
version="1.0" encoding="UTF-8" standalone="no"?><SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";><SOAP-ENV:Bod
y></></SOAP-ENV:Body></SOAP-ENV:Envelope>


And Apache responded with:

HTTP/1.1 500 Internal Server ErrorContent-Type: text/xml;
charset=utf-8Content-Length: 575Date: Thu, 07 Jun 2001 20:04:03
GMTServer: Apache Tomcat/4.0-dev (HTTP/1.1 Connector)Set-Cookie:
JSESSIONID=1032F276E286A18474F1B242032403E4;Path=/soap<?xml
version='1.0' encoding='UTF-8'?><SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xmlns:xsd="http://www.w3.org/1999/XMLSchema";><SOAP-ENV:Body><SOAP-ENV:Fa
ult><faultcode>SOAP-ENV:Client</faultcode><faultstring>parsing error:
org.xml.sax.SAXParseException: The element type "SOAP-ENV:Body" must be
terminated by the matching end-tag
"</SOAP-ENV:Body>".</faultstring><faultactor>/soap/servlet/rpcrouter</fa
ultactor></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>

The problem as I see is: <SOAP-ENV:Body></></SOAP-ENV:Body>

I am trying to call getS method.
How come it sends out an empty body?

Here is my WSDL:

<?xml version="1.0"?>
<definitions name="SOAPTester"
                targetNamespace="SOAPTester"
                xmlns="http://schemas.xmlsoap.org/wsdl/";
                xmlns:tns="urn:SOAPTester"
                xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
                xmlns:xsd="http://www.w3.org/2000/10/XMLSchema";>

        <message name="getSOutput">
                <part name="result" type="xsd:string"/>
        </message>
        <message name="setSInput">
                <part name="param0" type="xsd:string"/>
        </message>
        <portType name="SOAPTesterPortType">
                <operation name="getS">
                <output message="getSOutput"/>
                </operation>
                <operation name="setS">
                <input message="setSInput"/>
                </operation>
        </portType>
        <binding name="SOAPTesterBinding" type="SOAPTesterPortType">
                <soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
                <operation name="getS">
                        <soap:operation soapAction=""/>
                                <output>
                                        <soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:SOAPTester"/>
                                </output>
                </operation>
                <operation name="setS">
                        <soap:operation soapAction=""/>
                                <input>
                                        <soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:SOAPTester"/>
                                </input>
                </operation>
        </binding>
        <service name="SOAPTester">
                <port name="SOAPTesterPort" binding="SOAPTesterBinding">
                        <soap:address
location="http://manserv2:70/soap/servlet/rpcrouter"/>
                </port>
        </service>
</definitions>


-----Original Message-----
From: Hansen, Richard [mailto:[EMAIL PROTECTED]]
Sent: Thursday, June 07, 2001 11:43 AM
To: '[EMAIL PROTECTED]'
Subject: RE: MS SOAP Client / Apache SOAP server


t seems like you need to do some noraml debugging kinds of tasks. Maybe
you
should try running it under the TCPTunnel to see better what is
happening.
It really sounds like a VB code problem. Is your code finishing the
init? Is
it making the getS call? You can check the MS soa help for gettting the
fault from a response.

> 
> I see rpcouter:init showing up on the Tomcat's console, so 
> the RPC call
> is reaching the RPCRouter servlet, but I think it dies there, 
> because my
> server class never gets instantiated (I have a print in 
> constructor, so
> I know for sure).
> 
> How do I check fo faults in VB?
> 
> Here is my code for VB SOAP Client:
> 
> set soapclient = CreateObject("MSSOAP.SoapClient")
> Call soapclient.mssoapinit("http://manserv2/SOAPTester.wsdl";,
> "SOAPTester", "SOAPTestePort")
> Call soapclient.getS()
> 
 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to