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 Khondker Akhter <Kh...@msdw.com> on 2001/03/19 16:51:14 UTC

MS SOAP/VB Client <-> Apache SOAP Server Guide alpha 1

As promised, I am trying to put together a guide. The purpose of this
guide is:
  a) A simple starting point for newbies to get this kind of
communication going
  b) A way for me to find out if I am approaching this the right way/or
if there is a better way of doing this

With that in mind, feel free to correct/advise me.

Server config:
* solaris 2.6 (should not matter)
* tomcat 3.1
* apache soap 2.1 (with xerces/javamail etc).
* the stockQuoteService deployed with the standard
DeploymentDescriptor.xml

You know you are "there" when you can run the stock quote service
example (over the network).

Client config:
* Windows NT 4.0 Workstation (should not matter)
* VisualStudio Enterprise 6.0 Sp5
* MS Soap Tookit 2 Beta 2.0

here is the wsdl file that describes the stock quote service:
???????????????????????????????????????????????????????????????????????????????????

? StockQuoteService.wsdl
???????????????????????????????????????????????????????????????????????????????????

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

<definitions name="StockQuoteService"
             targetNamespace="urn:xmltoday-delayed-quotes"
             xmlns:tns="urn:xmltoday-delayed-quotes"
             xmlns="http://schemas.xmlsoap.org/wsdl/"
             xmlns:xsd="http://www.w3.org/1999/XMLSchema"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">

   <message name="getQuoteInput">
      <part name="symbol" type="xsd:string"/>
   </message>

   <message name="getQuoteOutput">
      <part name="quote" type="xsd:float"/>
   </message>

   <portType name="GetQuote">
      <operation name="getQuote">
         <input message="getQuoteInput"/>
         <output message="getQuoteOutput"/>
      </operation>
   </portType>

   <binding name="GetQuoteSoapBinding" type="GetQuote">
      <soap:binding style="rpc"
                    transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="getQuote">
         <soap:operation soapAction=""/>
         <input>
            <soap:body use="encoded"

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/
                                      http://www.ibm.com/namespaces/xmi"

                       namespace="urn:xmltoday-delayed-quotes"/>
         </input>
         <output>
            <soap:body use="encoded"

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/
                                      http://www.ibm.com/namespaces/xmi"

                       namespace="urn:xmltoday-delayed-quotes"/>
         </output>
      </operation>
   </binding>

   <service name="StockQuoteService">
      <port name="StockQuotePort" binding="GetQuoteSoapBinding">
        <soap:address
location="http://mgfrm65:8181/soap/servlet/rpcrouter"/>
      </port>
   </service>

</definitions>
?????????????????????????????????????????????????????????????????????????????????

This basis for this file is the sample from the IBM wsdl toolkit 1.1
sample for stockquote service. The only modifications I made were:

* The server address (<soap:address
location="http://mgfrm65:8181/soap/servlet/rpcrouter"/> (you would have
to change this as well and make sure you use the same port numbers--I
have different since I use Tcp tunnel to monitor the communication, e.g.
8181 to 8080)
* The hack from
http://marc.theaimsgroup.com/?l=soap-dev&m=97901982213396&w=2 for
xsi:type issue

Stick this file(StockQuoteService.wsdl) in some webserver. Attached is
the project that I used to connect to the service. The only change you
would need to make is change the WSDL_URL constant and point to your
StockQuoteService.wsdl file.

Hope this this help. Feel free to evolve this as needed.

Khondker Akhter