In this post I'm going to explain how to implement a client application for the Axis2 web service we created in my previous post.
We can use the WSDL2Java tool in Axis2 to generate the client side stubs to interact with the service. You can use either the command line version of this tool or the Ant task as mentioned in the Axis2 guide [1].
In this post I will use the axis2-wsdl2code-maven-plugin to generate the client side stub.
You can use this pom to configure the axis2-wsdl2code-maven-plugin to genrate the stub code and the project structure.
$mvn clean install
You will be able to see the generated folders src and target. Now you can open this maven project using your preferred IDE. Here I'm using IntellijIdea.
You will see the project structure similar to the image below.
Now it's time to write the client code to send request.
I've created another package called orderclient. Inside that I've added a new Java class Client.java
It's time to compile and run the client.
References:
[1] https://axis.apache.org/axis2/java/core/tools/CodegenToolReference.html
[2] http://briansjavablog.blogspot.com/2013/01/axis2-web-service-client-tutorial.html
[3] https://axis.apache.org/axis2/java/core/tools/maven-plugins/maven-wsdl2code-plugin.html
We can use the WSDL2Java tool in Axis2 to generate the client side stubs to interact with the service. You can use either the command line version of this tool or the Ant task as mentioned in the Axis2 guide [1].
In this post I will use the axis2-wsdl2code-maven-plugin to generate the client side stub.
You can use this pom to configure the axis2-wsdl2code-maven-plugin to genrate the stub code and the project structure.
axis2-webservice-client 4.0.0 jar org.wso2.training.manorama 1.0 1.6.2 1.2.16 /src/main/resources true org.apache.axis2 axis2-wsdl2code-maven-plugin 1.6.2 wsdl2code http://localhost:8080/axis2/services/OrderProcessingService?wsdl adb org.wso2.training.orderprocessor.stub src/main/java true org.apache.maven.plugins maven-compiler-plugin org.apache.axis2 axis2-kernel ${axis2.version} org.apache.axis2 axis2-adb ${axis2.version} org.apache.axis2 axis2-transport-http ${axis2.version} org.apache.axis2 axis2-transport-local ${axis2.version} org.apache.axis2 axis2-xmlbeans ${axis2.version} log4j log4j ${log4j.version}
- Create a directory with the name SampleClient (with any name you prefer).
- Save the above pom.xml with the required configuration.
- Note the <wsdlFile> element contains the path to the WSDL file. In this case it is the WSDL file of the OrderProcessingService deployed in the Axis2 Server. So the Axis2Server should be up and running. <packageName> element contains the package name which contains the generated stub java code.
- And configure the groupId, output directory as you prefer.
$mvn clean install
You will be able to see the generated folders src and target. Now you can open this maven project using your preferred IDE. Here I'm using IntellijIdea.
You will see the project structure similar to the image below.
Now it's time to write the client code to send request.
I've created another package called orderclient. Inside that I've added a new Java class Client.java
package org.wso2.training.orderclient; import org.apache.axis2.AxisFault; import org.wso2.training.orderprocessor.stub.OrderProcessingServiceStub; import java.rmi.RemoteException; import java.util.logging.Level; import java.util.logging.Logger; /** * Created with IntelliJ IDEA. * User: manorama * Date: 11/28/14 * Time: 1:14 PM * To change this template use File | Settings | File Templates. */ public class Client { private static final Logger logger = Logger.getLogger(Client.class.getName()); public static void main(String[] args) { OrderProcessingServiceStub stub = null; try { stub = new OrderProcessingServiceStub(); // Create the request - In-only OrderProcessingServiceStub.SubmitOrder request = new OrderProcessingServiceStub.SubmitOrder(); request.setOrderID("25"); request.setAmount(240); stub.submitOrder(request); // Invoke the service - In-out service OrderProcessingServiceStub.GetAmount getAmount = new OrderProcessingServiceStub.GetAmount(); getAmount.setOrderID("25"); OrderProcessingServiceStub.GetAmountResponse response = stub.getAmount(getAmount); logger.info("Response from OrderProcessing service [OrderID : 25]: " + response.get_return()); } catch (AxisFault axisFault) { logger.log(Level.SEVERE, axisFault.getMessage()); } catch (RemoteException e) { logger.log(Level.SEVERE, e.getMessage()); } } }
It's time to compile and run the client.
References:
[1] https://axis.apache.org/axis2/java/core/tools/CodegenToolReference.html
[2] http://briansjavablog.blogspot.com/2013/01/axis2-web-service-client-tutorial.html
[3] https://axis.apache.org/axis2/java/core/tools/maven-plugins/maven-wsdl2code-plugin.html
No comments:
Post a Comment