Web Services Invocation Framework:
Invoking the ComplexSOAP Sample through a high level stub interface

This directory contains a file called Run.java that contains the main 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,
java complexsoap.client.stub.Run samples/complexsoap/Zip2Geo.wsdl 10005

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:
java org.apache.axis.wsdl.WSDL2Java ../../Zip2Geo.wsdl
After the tool finished running, we deleted all the generated files except Zip2GeoSoap.java and LatLongReturn.java (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.