nmukhi 2002/12/09 10:15:19 Modified: java/samples/ComplexSOAP/client/stub/com/cdyne/ws Zip2GeoSoap.java Added: java/samples/ComplexSOAP/client/stub README.html Run.java Log: Revision Changes Path 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 zip code of interest. For example, <br> <tt>java samples.SimpleSOAP.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 samples.ComplexSOAP.client.stub; import org.apache.wsif.WSIFService; import org.apache.wsif.WSIFServiceFactory; import org.apache.wsif.WSIFException; import java.rmi.RemoteException; import com.cdyne.ws.LatLongReturn; import 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!=1) { System.out.println("Usage: java samples.ComplexSOAP.client.stub.Run <zip code>"); System.exit(1); } // create a service factory WSIFServiceFactory factory = WSIFServiceFactory.newInstance(); // parse WSDL WSIFService service = factory.getService("file:/work/xml-axis-wsif/java/samples/ComplexSOAP/Zip2Geo.wsdl", null, null, "http://ws.cdyne.com", "Zip2GeoSoap"); Zip2GeoSoap stub = null; // create the stub stub = (Zip2GeoSoap) service.getStub(Zip2GeoSoap.class); // do the invocation // args[0] is the zip code LatLongReturn zipInfo = stub.GetLatLong(args[0],""); 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.2 +1 -1 xml-axis-wsif/java/samples/ComplexSOAP/client/stub/com/cdyne/ws/Zip2GeoSoap.java Index: Zip2GeoSoap.java =================================================================== RCS file: /home/cvs/xml-axis-wsif/java/samples/ComplexSOAP/client/stub/com/cdyne/ws/Zip2GeoSoap.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Zip2GeoSoap.java 9 Dec 2002 17:32:23 -0000 1.1 +++ Zip2GeoSoap.java 9 Dec 2002 18:15:19 -0000 1.2 @@ -14,5 +14,5 @@ * will get better accuracy with the plus 4 added to the zipcode. Use * a license key of 0 for testing. */ - public com.cdyne.ws.LatLongReturn getLatLong(java.lang.String zipcode, java.lang.String licenseKey) throws java.rmi.RemoteException; + public com.cdyne.ws.LatLongReturn GetLatLong(java.lang.String zipcode, java.lang.String licenseKey) throws java.rmi.RemoteException; }