Its very convinent to create a Web Service Client using the tool WSDL2JAVA. Below are the steps to create one in Eclipse.
Step-1. Create a project in Eclipse ( we will call it testWSClient )
Step-2. Create a new run time configuration in Eclipse by clicking on “Run” and the new run time configuration Icon on the pop-up dialog box.
-   -  Main Tab –  - In the new Run-time config’s “Main” Tab enter “org.apache.axis.wsdl.WSDL2Java” for Main Class Test box
- Enter or Browse Project name “testWSClient”
- Type some name for this config in the name text box ( ex – runwsdl2java )
 
- Arguments Tab - - Enter the following in the Argument Tab - http://machinename.companyname.com:8080/module/services/servicemodule/MyService?wsdl -o src - This is the URL of the Web Service for which you want to generate Java code, and the command ” -o src” instructs wsdl2java to do just that
 
- Class Path Tab - - Make sure you have actvitation.jar, axis.jar, common-discovery.jar, common-logging.jar, commons-net.1.3.0.jar, javamail1.4.jar, jaxrpc.jar, saaj.jar and wsdl4j.jar in the classpath of your project and run time config
 
 
-  Main Tab –  
Step-3 - Now Run the runwsdl2java by selecting it from the Run dropdown, you should see the following
- Objects with package details being created for “ComplexTypes” in the WSDL, these are plan data objects
- A Port Type Interface with Methods corrspoinding to “Port Types” created
-  Service and ServiceLocator classes created with methods - getServiceHttpPort(java.net.URL portAddress)
- getServiceHttpPort()
 
- A HTTP Binding Stub Class
Note : It should be noted that all these classes are generated automatically by the wsdl2java tool.
Step-4 - Now Write your Client to invoke and access the methods in the WSDL, and interact with the web services.
NOte : Before we start make sure that the “ServiceHttpPort_address” variable in ServiceLocator class is pointing to the correct WSDL URL, which you provided when you were running the wsdl2java, it normally will be, but this is just a check, might not be required.
Now you can write a client, example below
public static void main(String[] args) throws MalformedURLException
 {
  Service service = new ServiceLocator();
  try {
   System.out.println(service.getServiceHttpPort().xyzMethod(getMyObject()));
  }
  catch (Exception e) {
   System.out.println(e.toString());
  }
  }
private MyObject getMyObject() {
// Note this MyObject will be a complexType in the WSDL and generated by the wsdl2java tool, we are creating it to pass it to the method xyzMethod ( also in WDL as a Port Type and acccessible thru ServiceLocater) which takes MyObject as a parameter
MyObject obj = new MyObject( someparameter);
}
 
 
No comments:
Post a Comment