antelder    2002/12/10 03:03:26

  Added:       java/samples/simplesoap README.html StockquoteSOAP.wsdl
               java/samples/simplesoap/client/stub Run.java README.html
               java/samples/complexsoap Zip2Geo.wsdl README.html
               java/samples/complexsoap/client/dynamic Run.java README.html
               java/samples/simplesoap/client/stub/com/themindelectric/www
                        NetXmethodsServicesStockquoteStockQuotePortType.java
               java/samples/complexsoap/client/stub README.html Run.java
               java/samples/complexsoap/client/stub/com/cdyne/ws
                        LatLongReturn.java Zip2GeoSoap.java
               java/samples/simplesoap/client/dynamic README.html
  Removed:     java/samples/SimpleSOAP/client/stub README.html Run.java
               java/samples/ComplexSOAP/client/stub/com/cdyne/ws
                        LatLongReturn.java Zip2GeoSoap.java
               java/samples/SimpleSOAP StockquoteSOAP.wsdl README.html
               java/samples/ComplexSOAP/client/dynamic README.html Run.java
               java/samples/ComplexSOAP Zip2Geo.wsdl README.html
               java/samples/SimpleSOAP/client/stub/com/themindelectric/www
                        NetXmethodsServicesStockquoteStockQuotePortType.java
               java/samples/ComplexSOAP/client/stub README.html Run.java
               java/samples/SimpleSOAP/client/dynamic README.html
  Log:
  Change package names to all lowercase and restructure so that we can continue having 
just java/samples in the build class path
  
  Revision  Changes    Path
  1.1                  xml-axis-wsif/java/samples/simplesoap/README.html
  
  Index: README.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta name="Author" content="Nirmal Mukhi">
  <meta http-equiv="Content-Style-Type" content="text/css">
  <title>Web Services Invocation Framework: Samples</title>
  <link rel="stylesheet" href="wsif.css" type="text/css"></head>
  
  <body alink="#0000ff" bgcolor="#ffffff" leftmargin="2" topmargin="2" marginwidth="2" 
marginheight="2">
  
  <h1>
  Web Services Invocation Framework:<br>
  SimpleSOAP Sample</h1>
  <p>This sample aims to demonstrate the invocation of the simple SOAP service, one 
that has minimum functionality and uses only primitive schema types. We invoke the 
ever-popular Stockquote service. For those unfamilar with it, this is a SOAP service 
that offers one port type with a single operation. That operation takes as input a 
stock symbol (that has schema type string) and returns a recent stock quote for that 
company (the stockquote has schema type float). Most SOAP engines use this sample, 
this one differs from the others in that you don't need to deploy the service at all; 
instead we make use of the public Stockquote service developed and hosted by the good 
folks at <a href="http://www.xmethods.net";>XMethods</a>. The service URL, where you 
can find details on the service implementation, etc. is <a 
href="http://www.xmethods.net/ve2/ViewListing.po?serviceid=2";>here</a>.</p>
  <p>The <a href="StockquoteSOAP.wsdl">WSDL file</a> in this sample directory is 
publicly available via the service URL and has been downloaded from there.</p>
  <p><a href="client/dynamic/README.html">Here's</a> how to invoke this service 
dynamically using WSIF's dynamic invocation interface (DII).</p>
  <p><a href="client/stub/README.html">Here's</a> how to invoke this service by first 
generating the stub interface and using this directly through WSIF's dynamic proxy, 
thus hiding all WSIF specifics from the client code. Note that the stub interface used 
is the the service interface as defined by the JAX-RPC specification.</p>
  <hr width="100%">
  </body></html>
  
  
  
  1.1                  xml-axis-wsif/java/samples/simplesoap/StockquoteSOAP.wsdl
  
  Index: StockquoteSOAP.wsdl
  ===================================================================
  <?xml version='1.0' encoding='UTF-8'?>
  <definitions name='net.xmethods.services.stockquote.StockQuote' 
             
targetNamespace='http://www.themindelectric.com/wsdl/net.xmethods.services.stockquote.StockQuote/'
 
             
xmlns:tns='http://www.themindelectric.com/wsdl/net.xmethods.services.stockquote.StockQuote/'
 
               xmlns:electric='http://www.themindelectric.com/' 
               xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' 
               xmlns:xsd='http://www.w3.org/2001/XMLSchema' 
               xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/' 
               xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' 
               xmlns='http://schemas.xmlsoap.org/wsdl/'>
  
     <message name='getQuoteResponse1'>
        <part name='Result' type='xsd:float'/>
     </message>
  
     <message name='getQuoteRequest1'>
        <part name='symbol' type='xsd:string'/>
     </message>
  
     <portType name='net.xmethods.services.stockquote.StockQuotePortType'>
        <operation name='getQuote' parameterOrder='symbol'>
           <input message='tns:getQuoteRequest1'/>
           <output message='tns:getQuoteResponse1'/>
        </operation>
     </portType>
  
     <binding name='net.xmethods.services.stockquote.StockQuoteBinding' 
              type='tns:net.xmethods.services.stockquote.StockQuotePortType'>
        <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
        <operation name='getQuote'>
           <soap:operation soapAction='urn:xmethods-delayed-quotes#getQuote'/>
           <input>
              <soap:body use='encoded' 
                         namespace='urn:xmethods-delayed-quotes' 
                         encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
           </input>
           <output>
              <soap:body use='encoded' 
                         namespace='urn:xmethods-delayed-quotes' 
                         encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
           </output>
        </operation>
     </binding>
  
     <service name='net.xmethods.services.stockquote.StockQuoteService'>
        <documentation>net.xmethods.services.stockquote.StockQuote web 
service</documentation>
        <port name='net.xmethods.services.stockquote.StockQuotePort' 
              binding='tns:net.xmethods.services.stockquote.StockQuoteBinding'>
           <soap:address location='http://66.28.98.121:9090/soap'/>
        </port>
     </service>
  </definitions>
  
  
  1.1                  xml-axis-wsif/java/samples/simplesoap/client/stub/Run.java
  
  Index: Run.java
  ===================================================================
  package simplesoap.client.stub;
  
  import org.apache.wsif.WSIFService;
  import org.apache.wsif.WSIFServiceFactory;
  import org.apache.wsif.WSIFException;
  import java.rmi.RemoteException;
  import 
simplesoap.client.stub.com.themindelectric.www.NetXmethodsServicesStockquoteStockQuotePortType;
  
  /**
   * Simple class that Runs the SimpleSOAP sample using a pregenerated stub interface
   * To use this class, provide a company stock symbol on the command line. WSIF 
   * should then invoke the SOAP service with this information, returning with a 
recent 
   * stockquote.
   * @author Nirmal K. Mukhi ([EMAIL PROTECTED])
   */
  
  public class Run {
      public static void main(String [] args) {
        try {
            if (args.length!=2) {
                System.out.println("Usage: java samples.SimpleSOAP.client.stub.Run 
<wsdl location> <company symbol>");
                System.exit(1);
            }
            // create a service factory
            WSIFServiceFactory factory = WSIFServiceFactory.newInstance();
            // parse WSDL
            WSIFService service = factory.getService(args[0], null,
                                                     null, 
"http://www.themindelectric.com/wsdl/net.xmethods.services.stockquote.StockQuote/";, 
                                                     
"net.xmethods.services.stockquote.StockQuotePortType"); 
            NetXmethodsServicesStockquoteStockQuotePortType stub = null;
            // create the stub
            stub = (NetXmethodsServicesStockquoteStockQuotePortType) 
service.getStub(NetXmethodsServicesStockquoteStockQuotePortType.class);
            // do the invocation
            // args[1] is the company symbol
            float quote = stub.getQuote(args[1]);
            System.out.println(quote);
        } catch (WSIFException we) {
            System.out.println("Error while executing sample, received an exception 
from WSIF; details:");
            we.printStackTrace();
        } catch (RemoteException re) {
            System.out.println("Error while executing sample, received an exception 
due to remote invocation; details:");
            re.printStackTrace();
        }
      }
  }
  
  
  
  1.1                  xml-axis-wsif/java/samples/simplesoap/client/stub/README.html
  
  Index: README.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta name="Author" content="Nirmal Mukhi">
  <meta http-equiv="Content-Style-Type" content="text/css">
  <title>Web Services Invocation Framework: Samples</title>
  <link rel="stylesheet" href="wsif.css" type="text/css"></head>
  
  <body alink="#0000ff" bgcolor="#ffffff" leftmargin="2" topmargin="2" marginwidth="2" 
marginheight="2">
  
  <h2>
  Web Services Invocation Framework:<br>
  Invoking the SimpleSOAP Sample through a high level stub interface</h2>
  <p>You must have the following on your classpath:
  <ul>
    <li>wsif.jar</li>
    <li>wsifsamples.jar</li>
    <li>A JAXP compliant XML parser, such as Xerces</li>
    <li>wsdl4j.jar</li>
    <li>qname.jar</li>
    <li>axis.jar (since by default WSIF uses its Axis provider to invoke SOAP 
services)</li>
    <li>JAR files required by Axis - log4j.jar, commons-logging.jar, jaxrpc.jar, 
saaj.jar</li>
  </ul>
  </p>
  <p>This directory contains a file called <tt>Run.java</tt> that contains the 
<tt>main</tt> method. This is the logic that uses the generated stub interface to run 
the sample. So you can run this class, specifying on the command line the location of 
the WSDL file for the sample and the symbol for the company whose stock quote you are 
interested in. For example, <br>
  <tt>java samples.SimpleSOAP.client.static.Run 
file:/mywsifinstallation/samples/SimpleSOAP/StockquoteSOAP.wsdl IBM</tt></p>
  <p>To generate the stub interface, you can use any tool that generates Java 
interfaces for WSDL services using their port type descriptions, such as WSDL2Java 
from Axis. WSIF assumes a correspondence between the generated Java interface and the 
WSDL port type that has its abstract description as specified in the JAX-RPC 
specification. This particular sample used WSDL2Java in the following way:<br>
  <tt>java org.apache.axis.wsdl.WSDL2Java ../../StockquoteSOAP.wsdl</tt><br>
  After the tool finished running, we deleted all the generated files except 
<tt>NetXmethodsServicesStockquoteStockQuotePortType.java</tt> (this is the java 
interface corresponding to the port type and is all that is required by WSIF).</p>
  <hr width="100%">
  </body></html>
  
  
  
  1.1                  xml-axis-wsif/java/samples/complexsoap/Zip2Geo.wsdl
  
  Index: Zip2Geo.wsdl
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:s="http://www.w3.org/2001/XMLSchema"; xmlns:s0="http://ws.cdyne.com"; 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"; 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; 
targetNamespace="http://ws.cdyne.com"; xmlns="http://schemas.xmlsoap.org/wsdl/";>
    <types>
      <s:schema elementFormDefault="qualified" targetNamespace="http://ws.cdyne.com";>
        <s:element name="GetLatLong">
          <s:complexType>
            <s:sequence>
              <s:element minOccurs="0" maxOccurs="1" name="zipcode" type="s:string" />
              <s:element minOccurs="0" maxOccurs="1" name="LicenseKey" type="s:string" 
/>
            </s:sequence>
          </s:complexType>
        </s:element>
        <s:element name="GetLatLongResponse">
          <s:complexType>
            <s:sequence>
              <s:element minOccurs="1" maxOccurs="1" name="GetLatLongResult" 
type="s0:LatLongReturn" />
            </s:sequence>
          </s:complexType>
        </s:element>
        <s:complexType name="LatLongReturn">
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="ServiceError" 
type="s:boolean" />
            <s:element minOccurs="1" maxOccurs="1" name="AddressError" 
type="s:boolean" />
            <s:element minOccurs="0" maxOccurs="1" name="City" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="StateAbbrev" type="s:string" 
/>
            <s:element minOccurs="0" maxOccurs="1" name="ZipCode" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="County" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" name="FromLongitude" 
type="s:decimal" />
            <s:element minOccurs="1" maxOccurs="1" name="FromLatitude" 
type="s:decimal" />
            <s:element minOccurs="1" maxOccurs="1" name="ToLongitude" type="s:decimal" 
/>
            <s:element minOccurs="1" maxOccurs="1" name="ToLatitude" type="s:decimal" 
/>
            <s:element minOccurs="1" maxOccurs="1" name="AvgLongitude" 
type="s:decimal" />
            <s:element minOccurs="1" maxOccurs="1" name="AvgLatitude" type="s:decimal" 
/>
            <s:element minOccurs="0" maxOccurs="1" name="CMSA" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="PMSA" type="s:string" />
          </s:sequence>
        </s:complexType>
        <s:element name="LatLongReturn" type="s0:LatLongReturn" />
      </s:schema>
    </types>
    <message name="GetLatLongSoapIn">
      <part name="parameters" element="s0:GetLatLong" />
    </message>
    <message name="GetLatLongSoapOut">
      <part name="parameters" element="s0:GetLatLongResponse" />
    </message>
    <message name="GetLatLongHttpGetIn">
      <part name="zipcode" type="s:string" />
      <part name="LicenseKey" type="s:string" />
    </message>
    <message name="GetLatLongHttpGetOut">
      <part name="Body" element="s0:LatLongReturn" />
    </message>
    <message name="GetLatLongHttpPostIn">
      <part name="zipcode" type="s:string" />
      <part name="LicenseKey" type="s:string" />
    </message>
    <message name="GetLatLongHttpPostOut">
      <part name="Body" element="s0:LatLongReturn" />
    </message>
    <portType name="Zip2GeoSoap">
      <operation name="GetLatLong">
        <documentation>This method will convert a zip code to Longitude and Latitude.  
You will get better accuracy with the plus 4 added to the zipcode.  Use a license key 
of 0 for testing.</documentation>
        <input message="s0:GetLatLongSoapIn" />
        <output message="s0:GetLatLongSoapOut" />
      </operation>
    </portType>
    <portType name="Zip2GeoHttpGet">
      <operation name="GetLatLong">
        <documentation>This method will convert a zip code to Longitude and Latitude.  
You will get better accuracy with the plus 4 added to the zipcode.  Use a license key 
of 0 for testing.</documentation>
        <input message="s0:GetLatLongHttpGetIn" />
        <output message="s0:GetLatLongHttpGetOut" />
      </operation>
    </portType>
    <portType name="Zip2GeoHttpPost">
      <operation name="GetLatLong">
        <documentation>This method will convert a zip code to Longitude and Latitude.  
You will get better accuracy with the plus 4 added to the zipcode.  Use a license key 
of 0 for testing.</documentation>
        <input message="s0:GetLatLongHttpPostIn" />
        <output message="s0:GetLatLongHttpPostOut" />
      </operation>
    </portType>
    <binding name="Zip2GeoSoap" type="s0:Zip2GeoSoap">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; style="document" 
/>
      <operation name="GetLatLong">
        <soap:operation soapAction="http://ws.cdyne.com/GetLatLong"; style="document" 
/>
        <input>
          <soap:body use="literal" />
        </input>
        <output>
          <soap:body use="literal" />
        </output>
      </operation>
    </binding>
    <service name="Zip2Geo">
      <port name="Zip2GeoSoap" binding="s0:Zip2GeoSoap">
        <soap:address location="http://ws.cdyne.com/ziptogeo/zip2geo.asmx"; />
      </port>
    </service>
  </definitions>
  
  
  1.1                  xml-axis-wsif/java/samples/complexsoap/README.html
  
  Index: README.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta name="Author" content="Nirmal Mukhi">
  <meta http-equiv="Content-Style-Type" content="text/css">
  <title>Web Services Invocation Framework: Samples</title>
  <link rel="stylesheet" href="wsif.css" type="text/css"></head>
  
  <body alink="#0000ff" bgcolor="#ffffff" leftmargin="2" topmargin="2" marginwidth="2" 
marginheight="2">
  
  <h1>
  Web Services Invocation Framework:<br>
  ComplexSOAP Sample</h1>
  <p>This sample aims to demonstrate the invocation of a SOAP service that uses custom 
type definitions. This is a little different from using service that exchange messages 
typed using primitive schema types, since we have to have native equivalents for the 
custom schema types and know how to serialize and deserialize these the 
representations between our native format and the SOAP format.</p>
  <p>The particular service we have chosen to demonstrate how to WSIF for such 
invocations is called <em>Zip2Geo</em>. This is a publicly available service hosted by 
<a href="http://www.cdyne.com";>www.cdyne.com</a>. The service offers a single port 
type with one operation, called <tt>GetLatLong</tt>. This operation takes as input a 
zip code, and returns as output information about the corresponding location, such as 
the name of the city, state, its latitude, longitude, etc. The return value is a 
complex schema type. The service URL, where you can find details on the service 
implementation, etc. is <a 
href="http://www.xmethods.net/ve2/ViewListing.po?serviceid=175331";>here</a>.</p>
  <p>The <a href="Zip2Geo.wsdl">WSDL file</a> in this sample directory is publicly 
available via the service URL and has been downloaded from there.</p>
  <p><a href="client/dynamic/README.html">Here's</a> how to invoke this service 
dynamically using WSIF's dynamic invocation interface (DII).</p>
  <p><a href="client/stub/README.html">Here's</a> how to invoke this service by first 
generating the stub interface and using this directly through WSIF's dynamic proxy, 
thus hiding all WSIF specifics from the client code. Note that the stub interface used 
is the the service interface as defined by the JAX-RPC specification.</p>
  <hr width="100%">
  </body></html>
  
  
  
  1.1                  xml-axis-wsif/java/samples/complexsoap/client/dynamic/Run.java
  
  Index: Run.java
  ===================================================================
  package complexsoap.client.dynamic;
  
  import javax.xml.namespace.QName;
  
  import org.apache.wsif.WSIFMessage;
  import org.apache.wsif.WSIFOperation;
  import org.apache.wsif.WSIFPort;
  import org.apache.wsif.WSIFService;
  import org.apache.wsif.WSIFServiceFactory;
  
  import complexsoap.client.stub.com.cdyne.ws.LatLongReturn;
  
  
  public class Run {
      public static void main(String [] args) throws Exception {
        // args[0] is the zip code
        if(args.length!=2) {
            System.out.println("Usage: java samples.ComplexSOAP.client.dynamic.Run 
<wsdl location> <zip code>");
            System.exit(1);
        }
        // create a service factory
          WSIFServiceFactory factory = WSIFServiceFactory.newInstance();
        
        WSIFService service = factory.getService(args[0], null,
                                                 null, "http://ws.cdyne.com";, 
                                                 "Zip2GeoSoap"); 
        // map types
        service.mapType(new QName("http://ws.cdyne.com","LatLongReturn";),
                        Class.forName("com.cdyne.ws.LatLongReturn"));
  
        // get the port
        WSIFPort port = service.getPort();
        // create the operation
        WSIFOperation operation = port.createOperation("GetLatLong");
        // create the input, output and fault messages associated with this operation
        WSIFMessage input = operation.createInputMessage();
        WSIFMessage output = operation.createOutputMessage();
        WSIFMessage fault = operation.createFaultMessage();
        // populate the input message
        input.setObjectPart("zipcode",args[1]);
        input.setObjectPart("LicenseKey","");
        // do the invocation
        if (operation.executeRequestResponseOperation(input, output, 
                                                      fault)) {
            // invocation succeeded, extract information from output 
            // message
            LatLongReturn zipInfo = (LatLongReturn) 
output.getObjectPart("GetLatLongResult");
            System.out.println("This zip code is in 
"+zipInfo.getCity()+","+zipInfo.getStateAbbrev()+
                               " in "+zipInfo.getCounty()+" county\n"+
                               "It extends from longitude 
"+zipInfo.getFromLongitude()+" to longitude "+
                               zipInfo.getToLongitude()+"\n and from latitude 
"+zipInfo.getFromLatitude()+
                               " to latitude "+zipInfo.getToLatitude());
        } else {
            System.out.println("Invocation failed");
            // extract fault message info
        }
      }
  }
  
  
  
  1.1                  
xml-axis-wsif/java/samples/complexsoap/client/dynamic/README.html
  
  Index: README.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta name="Author" content="Nirmal Mukhi">
  <meta http-equiv="Content-Style-Type" content="text/css">
  <title>Web Services Invocation Framework: Samples</title>
  <link rel="stylesheet" href="wsif.css" type="text/css"></head>
  
  <body alink="#0000ff" bgcolor="#ffffff" leftmargin="2" topmargin="2" marginwidth="2" 
marginheight="2">
  
  <h2>
  Web Services Invocation Framework:<br>
  Invoking the SimpleSOAP Sample using WSIF's dynamic invocation interface</h2>
  <p>You must have the following on your classpath:
  <ul>
    <li>wsif.jar</li>
    <li>wsifsamples.jar</li>
    <li>A JAXP compliant XML parser, such as Xerces</li>
    <li>wsdl4j.jar</li>
    <li>qname.jar</li>
    <li>axis.jar (since by default WSIF uses its Axis provider to invoke SOAP 
services)</li>
    <li>JAR files required by Axis - log4j.jar, commons-logging.jar, 
commons-discovery.jar, jaxrpc.jar, saaj.jar</li>
  </ul>
  </p>
  <p>After you have set up the CLASSPATH in your environment, to invoke this sample 
using WSIF's DII, run the <tt>Run</tt> class located in this directory. Specify as 
command line arguments the location of the WSDL file for the service and the zip code 
you are interested in. For example, <br><tt>java 
samples.ComplexSOAP.clients.dynamic.Run 
file:/mywsifinstallation/samples/ComplexSOAP/Zip2Geo.wsdl 10005</tt></p>
  <p>Look at the code in the <tt>Run.java</tt> file in this directory to see how to 
use WSIF's DII yourself. Note that the <tt>DynamicInvoker</tt> class we used to <a 
href="../../../SimpleSOAP/client/dynamic/README.html">invoke the SimpleSOAP sample 
dynamically</a> cannot be used for this one since the <tt>DynamicInvoker</tt> as it 
stands now is limited to invocation of services using primitive schema types only.</p>
  <hr width="100%">
  </body></html>
  
  
  
  1.1                  
xml-axis-wsif/java/samples/simplesoap/client/stub/com/themindelectric/www/NetXmethodsServicesStockquoteStockQuotePortType.java
  
  Index: NetXmethodsServicesStockquoteStockQuotePortType.java
  ===================================================================
  /**
   * NetXmethodsServicesStockquoteStockQuotePortType.java
   *
   * This file was auto-generated from WSDL
   * by the Apache Axis WSDL2Java emitter.
   */
  
  package simplesoap.client.stub.com.themindelectric.www;
  
  public interface NetXmethodsServicesStockquoteStockQuotePortType extends 
java.rmi.Remote {
      public float getQuote(java.lang.String symbol) throws java.rmi.RemoteException;
  }
  
  
  
  1.1                  xml-axis-wsif/java/samples/complexsoap/client/stub/README.html
  
  Index: README.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta name="Author" content="Nirmal Mukhi">
  <meta http-equiv="Content-Style-Type" content="text/css">
  <title>Web Services Invocation Framework: Samples</title>
  <link rel="stylesheet" href="wsif.css" type="text/css"></head>
  
  <body alink="#0000ff" bgcolor="#ffffff" leftmargin="2" topmargin="2" marginwidth="2" 
marginheight="2">
  
  <h2>
  Web Services Invocation Framework:<br>
  Invoking the ComplexSOAP Sample through a high level stub interface</h2>
  <p>You must have the following on your classpath:
  <ul>
    <li>wsif.jar</li>
    <li>wsifsamples.jar</li>
    <li>A JAXP compliant XML parser, such as Xerces</li>
    <li>wsdl4j.jar</li>
    <li>qname.jar</li>
    <li>axis.jar (since by default WSIF uses its Axis provider to invoke SOAP 
services)</li>
    <li>JAR files required by Axis - log4j.jar, commons-logging.jar, jaxrpc.jar, 
saaj.jar</li>
  </ul>
  </p>
  <p>This directory contains a file called <tt>Run.java</tt> that contains the 
<tt>main</tt> method. This is the logic that uses the generated stub interface to run 
the sample. So you can run this class, specifying on the command line the location of 
the WSDL file for the sample followed by the zip code of interest. For example, <br>
  <tt>java file:/mywsifinstallation/samples/ComplexSOAP/Zip2Geo.wsdl 
samples.ComplexSOAP.client.static.Run 10005</tt></p>
  <p>To generate the stub interface, you can use any tool that generates Java 
interfaces for WSDL services using their port type descriptions, such as WSDL2Java 
from Axis. WSIF assumes a correspondence between the generated Java interface and the 
WSDL port type that has its abstract description as specified in the JAX-RPC 
specification. This particular sample used WSDL2Java in the following way:<br>
  <tt>java org.apache.axis.wsdl.WSDL2Java ../../Zip2Geo.wsdl</tt><br>
  After the tool finished running, we deleted all the generated files except 
<tt>Zip2GeoSoap.java</tt> and <tt>LatLongReturn.java</tt> (Zip2GeoSoap is the java 
interface corresponding to the port type; LatLongReturn is the java representation of 
the complex schema type returned by the service - that is all that is required by 
WSIF). Note that the WSIF provider (in this case, Axis) automatically handles 
(de)serialization of the data that the user's code sees.</p>
  <hr width="100%">
  </body></html>
  
  
  
  1.1                  xml-axis-wsif/java/samples/complexsoap/client/stub/Run.java
  
  Index: Run.java
  ===================================================================
  package complexsoap.client.stub;
  
  import org.apache.wsif.WSIFService;
  import org.apache.wsif.WSIFServiceFactory;
  import org.apache.wsif.WSIFException;
  import java.rmi.RemoteException;
  import complexsoap.client.stub.com.cdyne.ws.LatLongReturn;
  import complexsoap.client.stub.com.cdyne.ws.Zip2GeoSoap;
  
  /**
   * Simple class that Runs the SimpleSOAP sample using a pregenerated stub interface
   * To use this class, provide a company stock symbol on the command line. WSIF 
   * should then invoke the SOAP service with this information, returning with a 
recent 
   * stockquote.
   * @author Nirmal K. Mukhi ([EMAIL PROTECTED])
   */
  
  public class Run {
      public static void main(String [] args) {
        try {
            if (args.length!=2) {
                System.out.println("Usage: java samples.ComplexSOAP.client.stub.Run 
<wsdl location> <zip code>");
                System.exit(1);
            }
            // create a service factory
            WSIFServiceFactory factory = WSIFServiceFactory.newInstance();
            // parse WSDL
            WSIFService service = factory.getService(args[0], null,
                                                     null, "http://ws.cdyne.com";, 
                                                     "Zip2GeoSoap"); 
            Zip2GeoSoap stub = null;
            // create the stub
            stub = (Zip2GeoSoap) service.getStub(Zip2GeoSoap.class);
            // do the invocation
            // args[1] is the zip code
            LatLongReturn zipInfo = stub.GetLatLong(args[1],"");
            System.out.println("This zip code is in 
"+zipInfo.getCity()+","+zipInfo.getStateAbbrev()+
                               " in "+zipInfo.getCounty()+" county\n"+
                               "It extends from longitude 
"+zipInfo.getFromLongitude()+" to longitude "+
                               zipInfo.getToLongitude()+"\n and from latitude 
"+zipInfo.getFromLatitude()+
                               " to latitude "+zipInfo.getToLatitude());
        } catch (WSIFException we) {
            System.out.println("Error while executing sample, received an exception 
from WSIF; details:");
            we.printStackTrace();
        } catch (RemoteException re) {
            System.out.println("Error while executing sample, received an exception 
due to remote invocation; details:");
            re.printStackTrace();
        }
      }
  }
  
  
  
  1.1                  
xml-axis-wsif/java/samples/complexsoap/client/stub/com/cdyne/ws/LatLongReturn.java
  
  Index: LatLongReturn.java
  ===================================================================
  /**
   * LatLongReturn.java
   *
   * This file was auto-generated from WSDL
   * by the Apache Axis WSDL2Java emitter.
   */
  
  package complexsoap.client.stub.com.cdyne.ws;
  
  public class LatLongReturn  implements java.io.Serializable {
      private boolean serviceError;
      private boolean addressError;
      private java.lang.String city;
      private java.lang.String stateAbbrev;
      private java.lang.String zipCode;
      private java.lang.String county;
      private java.math.BigDecimal fromLongitude;
      private java.math.BigDecimal fromLatitude;
      private java.math.BigDecimal toLongitude;
      private java.math.BigDecimal toLatitude;
      private java.math.BigDecimal avgLongitude;
      private java.math.BigDecimal avgLatitude;
      private java.lang.String CMSA;
      private java.lang.String PMSA;
  
      public LatLongReturn() {
      }
  
      public boolean isServiceError() {
          return serviceError;
      }
  
      public void setServiceError(boolean serviceError) {
          this.serviceError = serviceError;
      }
  
      public boolean isAddressError() {
          return addressError;
      }
  
      public void setAddressError(boolean addressError) {
          this.addressError = addressError;
      }
  
      public java.lang.String getCity() {
          return city;
      }
  
      public void setCity(java.lang.String city) {
          this.city = city;
      }
  
      public java.lang.String getStateAbbrev() {
          return stateAbbrev;
      }
  
      public void setStateAbbrev(java.lang.String stateAbbrev) {
          this.stateAbbrev = stateAbbrev;
      }
  
      public java.lang.String getZipCode() {
          return zipCode;
      }
  
      public void setZipCode(java.lang.String zipCode) {
          this.zipCode = zipCode;
      }
  
      public java.lang.String getCounty() {
          return county;
      }
  
      public void setCounty(java.lang.String county) {
          this.county = county;
      }
  
      public java.math.BigDecimal getFromLongitude() {
          return fromLongitude;
      }
  
      public void setFromLongitude(java.math.BigDecimal fromLongitude) {
          this.fromLongitude = fromLongitude;
      }
  
      public java.math.BigDecimal getFromLatitude() {
          return fromLatitude;
      }
  
      public void setFromLatitude(java.math.BigDecimal fromLatitude) {
          this.fromLatitude = fromLatitude;
      }
  
      public java.math.BigDecimal getToLongitude() {
          return toLongitude;
      }
  
      public void setToLongitude(java.math.BigDecimal toLongitude) {
          this.toLongitude = toLongitude;
      }
  
      public java.math.BigDecimal getToLatitude() {
          return toLatitude;
      }
  
      public void setToLatitude(java.math.BigDecimal toLatitude) {
          this.toLatitude = toLatitude;
      }
  
      public java.math.BigDecimal getAvgLongitude() {
          return avgLongitude;
      }
  
      public void setAvgLongitude(java.math.BigDecimal avgLongitude) {
          this.avgLongitude = avgLongitude;
      }
  
      public java.math.BigDecimal getAvgLatitude() {
          return avgLatitude;
      }
  
      public void setAvgLatitude(java.math.BigDecimal avgLatitude) {
          this.avgLatitude = avgLatitude;
      }
  
      public java.lang.String getCMSA() {
          return CMSA;
      }
  
      public void setCMSA(java.lang.String CMSA) {
          this.CMSA = CMSA;
      }
  
      public java.lang.String getPMSA() {
          return PMSA;
      }
  
      public void setPMSA(java.lang.String PMSA) {
          this.PMSA = PMSA;
      }
  
      private java.lang.Object __equalsCalc = null;
      public synchronized boolean equals(java.lang.Object obj) {
          if (!(obj instanceof LatLongReturn)) return false;
          LatLongReturn other = (LatLongReturn) obj;
          if (obj == null) return false;
          if (this == obj) return true;
          if (__equalsCalc != null) {
              return (__equalsCalc == obj);
          }
          __equalsCalc = obj;
          boolean _equals;
          _equals = true && 
              serviceError == other.isServiceError() &&
              addressError == other.isAddressError() &&
              ((city==null && other.getCity()==null) || 
               (city!=null &&
                city.equals(other.getCity()))) &&
              ((stateAbbrev==null && other.getStateAbbrev()==null) || 
               (stateAbbrev!=null &&
                stateAbbrev.equals(other.getStateAbbrev()))) &&
              ((zipCode==null && other.getZipCode()==null) || 
               (zipCode!=null &&
                zipCode.equals(other.getZipCode()))) &&
              ((county==null && other.getCounty()==null) || 
               (county!=null &&
                county.equals(other.getCounty()))) &&
              ((fromLongitude==null && other.getFromLongitude()==null) || 
               (fromLongitude!=null &&
                fromLongitude.equals(other.getFromLongitude()))) &&
              ((fromLatitude==null && other.getFromLatitude()==null) || 
               (fromLatitude!=null &&
                fromLatitude.equals(other.getFromLatitude()))) &&
              ((toLongitude==null && other.getToLongitude()==null) || 
               (toLongitude!=null &&
                toLongitude.equals(other.getToLongitude()))) &&
              ((toLatitude==null && other.getToLatitude()==null) || 
               (toLatitude!=null &&
                toLatitude.equals(other.getToLatitude()))) &&
              ((avgLongitude==null && other.getAvgLongitude()==null) || 
               (avgLongitude!=null &&
                avgLongitude.equals(other.getAvgLongitude()))) &&
              ((avgLatitude==null && other.getAvgLatitude()==null) || 
               (avgLatitude!=null &&
                avgLatitude.equals(other.getAvgLatitude()))) &&
              ((CMSA==null && other.getCMSA()==null) || 
               (CMSA!=null &&
                CMSA.equals(other.getCMSA()))) &&
              ((PMSA==null && other.getPMSA()==null) || 
               (PMSA!=null &&
                PMSA.equals(other.getPMSA())));
          __equalsCalc = null;
          return _equals;
      }
  
      private boolean __hashCodeCalc = false;
      public synchronized int hashCode() {
          if (__hashCodeCalc) {
              return 0;
          }
          __hashCodeCalc = true;
          int _hashCode = 1;
          _hashCode += new Boolean(isServiceError()).hashCode();
          _hashCode += new Boolean(isAddressError()).hashCode();
          if (getCity() != null) {
              _hashCode += getCity().hashCode();
          }
          if (getStateAbbrev() != null) {
              _hashCode += getStateAbbrev().hashCode();
          }
          if (getZipCode() != null) {
              _hashCode += getZipCode().hashCode();
          }
          if (getCounty() != null) {
              _hashCode += getCounty().hashCode();
          }
          if (getFromLongitude() != null) {
              _hashCode += getFromLongitude().hashCode();
          }
          if (getFromLatitude() != null) {
              _hashCode += getFromLatitude().hashCode();
          }
          if (getToLongitude() != null) {
              _hashCode += getToLongitude().hashCode();
          }
          if (getToLatitude() != null) {
              _hashCode += getToLatitude().hashCode();
          }
          if (getAvgLongitude() != null) {
              _hashCode += getAvgLongitude().hashCode();
          }
          if (getAvgLatitude() != null) {
              _hashCode += getAvgLatitude().hashCode();
          }
          if (getCMSA() != null) {
              _hashCode += getCMSA().hashCode();
          }
          if (getPMSA() != null) {
              _hashCode += getPMSA().hashCode();
          }
          __hashCodeCalc = false;
          return _hashCode;
      }
  
      // Type metadata
      private static org.apache.axis.description.TypeDesc typeDesc =
          new org.apache.axis.description.TypeDesc(LatLongReturn.class);
  
      static {
          org.apache.axis.description.FieldDesc field = new 
org.apache.axis.description.ElementDesc();
          field.setFieldName("serviceError");
          field.setXmlName(new javax.xml.namespace.QName("http://ws.cdyne.com";, 
"ServiceError"));
          field.setXmlType(new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "boolean"));
          typeDesc.addFieldDesc(field);
          field = new org.apache.axis.description.ElementDesc();
          field.setFieldName("addressError");
          field.setXmlName(new javax.xml.namespace.QName("http://ws.cdyne.com";, 
"AddressError"));
          field.setXmlType(new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "boolean"));
          typeDesc.addFieldDesc(field);
          field = new org.apache.axis.description.ElementDesc();
          field.setFieldName("city");
          field.setXmlName(new javax.xml.namespace.QName("http://ws.cdyne.com";, 
"City"));
          field.setXmlType(new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "string"));
          field.setMinOccursIs0(true);
          typeDesc.addFieldDesc(field);
          field = new org.apache.axis.description.ElementDesc();
          field.setFieldName("stateAbbrev");
          field.setXmlName(new javax.xml.namespace.QName("http://ws.cdyne.com";, 
"StateAbbrev"));
          field.setXmlType(new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "string"));
          field.setMinOccursIs0(true);
          typeDesc.addFieldDesc(field);
          field = new org.apache.axis.description.ElementDesc();
          field.setFieldName("zipCode");
          field.setXmlName(new javax.xml.namespace.QName("http://ws.cdyne.com";, 
"ZipCode"));
          field.setXmlType(new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "string"));
          field.setMinOccursIs0(true);
          typeDesc.addFieldDesc(field);
          field = new org.apache.axis.description.ElementDesc();
          field.setFieldName("county");
          field.setXmlName(new javax.xml.namespace.QName("http://ws.cdyne.com";, 
"County"));
          field.setXmlType(new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "string"));
          field.setMinOccursIs0(true);
          typeDesc.addFieldDesc(field);
          field = new org.apache.axis.description.ElementDesc();
          field.setFieldName("fromLongitude");
          field.setXmlName(new javax.xml.namespace.QName("http://ws.cdyne.com";, 
"FromLongitude"));
          field.setXmlType(new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "decimal"));
          typeDesc.addFieldDesc(field);
          field = new org.apache.axis.description.ElementDesc();
          field.setFieldName("fromLatitude");
          field.setXmlName(new javax.xml.namespace.QName("http://ws.cdyne.com";, 
"FromLatitude"));
          field.setXmlType(new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "decimal"));
          typeDesc.addFieldDesc(field);
          field = new org.apache.axis.description.ElementDesc();
          field.setFieldName("toLongitude");
          field.setXmlName(new javax.xml.namespace.QName("http://ws.cdyne.com";, 
"ToLongitude"));
          field.setXmlType(new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "decimal"));
          typeDesc.addFieldDesc(field);
          field = new org.apache.axis.description.ElementDesc();
          field.setFieldName("toLatitude");
          field.setXmlName(new javax.xml.namespace.QName("http://ws.cdyne.com";, 
"ToLatitude"));
          field.setXmlType(new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "decimal"));
          typeDesc.addFieldDesc(field);
          field = new org.apache.axis.description.ElementDesc();
          field.setFieldName("avgLongitude");
          field.setXmlName(new javax.xml.namespace.QName("http://ws.cdyne.com";, 
"AvgLongitude"));
          field.setXmlType(new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "decimal"));
          typeDesc.addFieldDesc(field);
          field = new org.apache.axis.description.ElementDesc();
          field.setFieldName("avgLatitude");
          field.setXmlName(new javax.xml.namespace.QName("http://ws.cdyne.com";, 
"AvgLatitude"));
          field.setXmlType(new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "decimal"));
          typeDesc.addFieldDesc(field);
          field = new org.apache.axis.description.ElementDesc();
          field.setFieldName("CMSA");
          field.setXmlName(new javax.xml.namespace.QName("http://ws.cdyne.com";, 
"CMSA"));
          field.setXmlType(new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "string"));
          field.setMinOccursIs0(true);
          typeDesc.addFieldDesc(field);
          field = new org.apache.axis.description.ElementDesc();
          field.setFieldName("PMSA");
          field.setXmlName(new javax.xml.namespace.QName("http://ws.cdyne.com";, 
"PMSA"));
          field.setXmlType(new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "string"));
          field.setMinOccursIs0(true);
          typeDesc.addFieldDesc(field);
      };
  
      /**
       * Return type metadata object
       */
      public static org.apache.axis.description.TypeDesc getTypeDesc() {
          return typeDesc;
      }
  
      /**
       * Get Custom Serializer
       */
      public static org.apache.axis.encoding.Serializer getSerializer(
             java.lang.String mechType, 
             java.lang.Class _javaType,  
             javax.xml.namespace.QName _xmlType) {
          return 
            new  org.apache.axis.encoding.ser.BeanSerializer(
              _javaType, _xmlType, typeDesc);
      }
  
      /**
       * Get Custom Deserializer
       */
      public static org.apache.axis.encoding.Deserializer getDeserializer(
             java.lang.String mechType, 
             java.lang.Class _javaType,  
             javax.xml.namespace.QName _xmlType) {
          return 
            new  org.apache.axis.encoding.ser.BeanDeserializer(
              _javaType, _xmlType, typeDesc);
      }
  
  }
  
  
  
  1.1                  
xml-axis-wsif/java/samples/complexsoap/client/stub/com/cdyne/ws/Zip2GeoSoap.java
  
  Index: Zip2GeoSoap.java
  ===================================================================
  /**
   * Zip2GeoSoap.java
   *
   * This file was auto-generated from WSDL
   * by the Apache Axis WSDL2Java emitter.
   */
  
  package complexsoap.client.stub.com.cdyne.ws;
  
  public interface Zip2GeoSoap extends java.rmi.Remote {
  
      /**
       * This method will convert a zip code to Longitude and Latitude.  You
       * will get better accuracy with the plus 4 added to the zipcode.  Use
       * a license key of 0 for testing.
       */
      public complexsoap.client.stub.com.cdyne.ws.LatLongReturn 
GetLatLong(java.lang.String zipcode, java.lang.String licenseKey) throws 
java.rmi.RemoteException;
  }
  
  
  
  1.1                  xml-axis-wsif/java/samples/simplesoap/client/dynamic/README.html
  
  Index: README.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta name="Author" content="Nirmal Mukhi">
  <meta http-equiv="Content-Style-Type" content="text/css">
  <title>Web Services Invocation Framework: Samples</title>
  <link rel="stylesheet" href="wsif.css" type="text/css"></head>
  
  <body alink="#0000ff" bgcolor="#ffffff" leftmargin="2" topmargin="2" marginwidth="2" 
marginheight="2">
  
  <h2>
  Web Services Invocation Framework:<br>
  Invoking the SimpleSOAP Sample using WSIF's dynamic invocation interface</h2>
  <p>You must have the following on your classpath:
  <ul>
    <li>wsif.jar</li>
    <li>wsifsamples.jar</li>
    <li>A JAXP compliant XML parser, such as Xerces</li>
    <li>wsdl4j.jar</li>
    <li>qname.jar</li>
    <li>axis.jar (since by default WSIF uses its Axis provider to invoke SOAP 
services)</li>
    <li>JAR files required by Axis - log4j.jar, commons-logging.jar, 
commons-discovery.jar, jaxrpc.jar, saaj.jar</li>
  </ul>
  </p>
  <p>After you have set up the CLASSPATH in your environment, to invoke this sample 
using WSIF's DII, run the DynamicInvoker class. Specify as command line arguments the 
location of the WSDL file for the stockquote sample followed by the operation you wish 
to invoke and the symbol for the company whose stockquote you are interested in. For 
example, <br><tt>java samples.clients.DynamicInvoker 
file:/mywsifinstallation/samples/SimpleSOAP/StockquoteSOAP.wsdl getQuote IBM</tt></p>
  <hr width="100%">
  </body></html>
  
  
  


Reply via email to