Prerequisites
- You should have java installed and set path and Java_Home correctly (JAVA_HOME, JRE_HOME)
- You should have Apache Tomcat and Axis2 downloaded and extracted
- You should have installed the Eclipse Java EE IDE
Lets start the web service development
First lets add Tomcat run time environment to Eclipse. Go to Window->Preferences then select Server on your left hand side. Under that you can see run time environments > click Add. You can see similar interface as Figure 1.
Figure 1
Select Apache Tomcat v7.0 and click Next. Then you can see a similar interface as in Figure 2. Click on the Browse button and select the Apache Tomcat 7 Extracted folder. Then Click Finish
Figure 2
Then you can see the added environment as in Figure 3.
Figure 3
Then you need to add Axis2 path to the Eclipse preferences. Again go to Window->Preferences then click on Web Services and then select Axis2 Preferences. Then click on the Brows button and select the Extracted axis 2 folder path. (Figure 4)
Figure 4
Step 1 : Create Dynamic web project
Click on file->New->Other and you can see an interface like Figure 5. Type Dynamic in the wizard input field and select the Dynamic Web Project. Then click NextFigure 5
Then add project name as you prefer. I'll put project name as SampleWebService (Figure 6) Then Change the Dynamic web module version to 2.5 and then Click on Modify button under configuration. Then select Axis2 Web Services and click OK button > Next > Finish.
Figure 6
Step 2: Create Web service class
Then we have to write the service class that have the method that we need to implement as a service. In my example I'll write a simple method to multiply two number which will be passed as parameters.
Figure 7
Right click on the project you created and select New->Other. Then type service on wizards input box as figure 8 and select the web service to mark the class you created as a web service.
Figure 8
Then You will see an interface similar to Figure 9. Give a service name as you prefer and then click on Web Service run-time: Apache Axis
Figure 9
Then change the web server run-time to Apache axis2. Click Next and in next interface make sure to select Generate a default service.xml file option.
Then click Next button and then in next interface you have to click Start Server button as show in Figure 10. Then Click Finish button.
Figure 10
After you finish you can see a log similar to the following :
Figure 11
As shown in Figure 11 you can find the port your service runs. In my example it runs on 8080 port (Circled in Figure 11 ). Then you can access the web service you have just created by going to following link.
http://localhost:8080/SampleWebService/services/listServices
Figure 12
Click on the Service class name, you will be able to access the wsdl file.
Step 3 : Create Axis Archive file
Now we have a;ready run the web service but we haven't created the Axis Archive file from the web service that we created. To create the Axis archive go to the following path YourProjectNamePath\WebContent\WEB-INF\services\ServiceYouCreated using command line. Then enter following command.
jar cvf FirstService.aar com META-INF
Then you can see FirstService.aar file has created on your folder location.
Now Let's deploy the Axis2.war file in to Tomcat. You should copy the Axis2.war file in to webapps folder on Apache tomcat. Then go to the bin folder on Apache tomcat installation directory from command prompt. Then run startup.bat. Please not that in this point you have to set JAVA_HOME and JRE_HOME correctly in Environment Variables.
Then you'd be able to access the http://localhost:8080/axis2/ and you can see interface similar to Figure 13.
Figure 13
Then Click on Administrator. Enter user name and password.(Default username is admin and password is axis2). Click on Upload Service in Top left in your page and upload the .aar file that was created earlier.
Then go to Available service section you can see your service as Figure 14. You can click on the web service you created and access the wsdl link.,
Figure 14
Step 4 : Create Web service Client
Then we have to create the client stub class which we can use to access the web service methods. You can right click on project then New->Other then select Web Service Client. (Figure 15)
Figure 15
In the interface in service definition give the wsdl path (for my project it's http://localhost:8080/SampleWebService/services/FirstService?wsdl ) then click on Web Service Runtime and select Axis2. Then click next. (Figure 16)
Figure 16
Next interface you can provide package name for the class which we are going to generate. Then click Finish
Figure 17
Then create a java project File->New->Other Java Project and copy the clientstub class in to that project. Then write sample test class to run the web service client.
package it.com.clientapp;
import java.rmi.RemoteException;
import org.apache.axis2.AxisFault;
import it.com.clientstub.*;
import it.com.clientstub.FirstServiceStub.MultyTwoNumber;
import it.com.clientstub.FirstServiceStub.MultyTwoNumberResponse;
public class TestWebServie {
public static void main(String[] args) {
try {
FirstServiceStub stub=new FirstServiceStub();
MultyTwoNumber num=new MultyTwoNumber();
num.setNum1(10);
num.setNum2(16.2);
MultyTwoNumberResponse response=stub.multyTwoNumber(num);
double returnVal=response.get_return();
System.out.println("Client values are :"+ 10 + " x "+16.2);
System.out.println("Server returns "+returnVal);
} catch (AxisFault e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Then right click on the class Run As -> Java Application. Then you can see this client application call the service method and returns the output.
This is a simple two number multiplication service implementation and your can implement your own service logic with different kind of parameters to the service.
No comments:
Post a Comment