Web services are application components which communicate using open protocols.
Using Web Services we can publish our application's functions to everyone.
This tutorial provides step by step instructions to develop Web Services using Axis2 Web Services / SOAP / WSDL engine and Eclipse IDE.
Let's start.
We have used below tools for this tutorials
STEP 1 : Create a new Dynamic Web Project called TutorialsDesk.AxisWebService.
STEP 2 : Create a package com.tutorialsdesk.axis.bean under TutorialsDesk.AxisWebService.
STEP 3 : Create class Employee.java under package com.tutorialsdesk.axis.bean as given below
STEP 4 : Create a package com.tutorialsdesk.axis.util under TutorialsDesk.AxisWebService.
STEP 5 : Create class EmployeeDatabase.java under package com.tutorialsdesk.axis.util as given below
STEP 6 : Create a package com.tutorialsdesk.axis.services under TutorialsDesk.AxisWebService.
STEP 7 : Create class EmployeeService.java under package com.tutorialsdesk.axis.services as given below
STEP 8 : In Project folder right click on EmployeeService.java
STEP 9 : Click on Web Services - > Create Web Service.
STEP 10 : Select options publish the web service and Monitor the web service.
STEP 11 : Click on Finish.
STEP 12 : It may take some time to finish all processes and you should see new project “TutorialsDesk.AxisWebServiceClient” created. Here is a final project structure.
STEP 13 : “TutorialsDesk.AxisWebService” and “TutorialsDesk.AxisWebServiceClient” both projects should be automatically deployed to server.
Hope we are able to explain you Java SOAP Webservices using Axis 2 and Tomcat , if you have any questions or suggestions please write to us using contact us form.(Second Menu from top left).
Please share us on social media if you like the tutorial.
Axis 2
Axis 2 is a web service/SOAP/WSDL engine provided by Apache. It is a java based implementation. Axis 2 provides complete object model and modular architecture. Using Axis 2 you can easily create a web service from a plain java class, send SOAP messages, receive SOAP message.We have used below tools for this tutorials
- Apache Tomcat 7.05.55 Download from this website http://tomcat.apache.org/
- axis2-1.6.2 Download from this website http://axis.apache.org/axis2/java/core/
- Eclipse IDE - Kepler for Web Developers. Download from this website http://www.eclipse.org/
Set Axis runtime in Eclipse
- Go to Window Menu.
- Click on Preferences.
- Expand Web Services option.
- Click Axis2 Preferences.
- Give your axis2 location in the Axis2 runtime location box.
Set Tomcat runtime in Eclipse
- Go to Window Menu.
- Click on Preferences.
- Expand Server option.
- Click on ADD.
- Select Apache Tomcat v7.0.
- Click Next
- Give your Tomcat location in the Tomcat installation directory box.
Creating a web service from a plain java class in eclipse
Let's develope a simple web application to demonstrate Java SOAP Webservices using Axis 2 and Tomcat. This Sample Application is all about querying information from a Web Application. For this, let us assume that we have a Employee Database maintained in the backend and we publish the various services to the Client in the WSDL file. Both types of clients, Browser Client and Console Client are included in the sample Application.STEP 1 : Create a new Dynamic Web Project called TutorialsDesk.AxisWebService.
STEP 2 : Create a package com.tutorialsdesk.axis.bean under TutorialsDesk.AxisWebService.
STEP 3 : Create class Employee.java under package com.tutorialsdesk.axis.bean as given below
package com.tutorialsdesk.axis.bean; import java.io.Serializable; public class Employee implements Serializable { private static final long serialVersionUID = -1129402159048345204L; String Name; String Department; int Age; double Salary; public Employee() { } public Employee(String name, String department, int age, double salary) { super(); Name = name; Department = department; Age = age; Salary = salary; } public String getName() { return Name; } public void setName(String name) { Name = name; } public String getDepartment() { return Department; } public void setDepartment(String department) { Department = department; } public int getAge() { return Age; } public void setAge(int age) { Age = age; } public double getSalary() { return Salary; } public void setSalary(double salary) { Salary = salary; } }
STEP 4 : Create a package com.tutorialsdesk.axis.util under TutorialsDesk.AxisWebService.
STEP 5 : Create class EmployeeDatabase.java under package com.tutorialsdesk.axis.util as given below
package com.tutorialsdesk.axis.util; import java.util.*; import com.tutorialsdesk.axis.bean.Employee; public class EmployeeDatabase { private static List<employee> employees; public static List<employee> list(){ return employees; } public static Employee getEmployee(String name){ Iterator<employee> iterator = employees.iterator(); while (iterator.hasNext()){ Employee employee = (Employee) iterator.next(); if (employee.getName().equals(name)){ return employee; } } return null; } public static Employee getEmployeeData(String name){ Iterator<employee> iterator = employees.iterator(); while (iterator.hasNext()){ Employee employee = (Employee) iterator.next(); if (employee.getName().equals(name)){ return employee; } } return null; } static { initEmployees(); } static void initEmployees(){ employees = new ArrayList<employee>(); employees.add(new Employee("Rahul", "HR", 25, 15000.00)); employees.add(new Employee("Zuzana", "Sales", 32, 48000.00)); employees.add(new Employee("Martin", "Engineering",22, 32000.00)); employees.add(new Employee("Sachin", "Engineering",25, 65000.00)); employees.add(new Employee("Ondrej", "Operations",26, 25000.00)); } }
STEP 6 : Create a package com.tutorialsdesk.axis.services under TutorialsDesk.AxisWebService.
STEP 7 : Create class EmployeeService.java under package com.tutorialsdesk.axis.services as given below
package com.tutorialsdesk.axis.services; import java.util.List; import com.tutorialsdesk.axis.util.EmployeeDatabase; import com.tutorialsdesk.axis.bean.Employee; public class EmployeeService { public int getAgeForEmployee(String name){ return EmployeeDatabase.getEmployee(name).getAge(); } public String getDepartmentForEmployee(String name){ return EmployeeDatabase.getEmployee(name).getDepartment(); } public double getSalaryForEmployee(String name){ return EmployeeDatabase.getEmployee(name).getSalary(); } public Employee getEmployeeData(String name){ return EmployeeDatabase.getEmployeeData(name); } public String getAllEmployees(){ List<employee%gt; Employees = EmployeeDatabase.list(); StringBuilder result = new StringBuilder(); for(Employee employee : Employees){ result.append(employee.getName() + " "); } return result.toString(); } }
STEP 8 : In Project folder right click on EmployeeService.java
STEP 9 : Click on Web Services - > Create Web Service.
STEP 10 : Select options publish the web service and Monitor the web service.
STEP 11 : Click on Finish.
STEP 12 : It may take some time to finish all processes and you should see new project “TutorialsDesk.AxisWebServiceClient” created. Here is a final project structure.
STEP 13 : “TutorialsDesk.AxisWebService” and “TutorialsDesk.AxisWebServiceClient” both projects should be automatically deployed to server.
Invoking the Web Services
Use the following URL’s to access the various web services operations- http://localhost:8080/TutorialsDesk.AxisWebService/services/EmployeeService?method=getAllEmployees
- http://localhost:8080/TutorialsDesk.AxisWebService/services/EmployeeService?method=getAgeForEmployee&name=Martin
- http://localhost:8080/TutorialsDesk.AxisWebService/services/EmployeeService?method=getSalaryForEmployee&name=Ondrej
- http://localhost:8080/TutorialsDesk.AxisWebService/services/EmployeeService?method=getDepartmentForEmployee&name=Rahul
- http://localhost:8080/TutorialsDesk.AxisWebService/services/EmployeeService?method=getEmployeeData&name=Zuzana
Creating a Console-based Client
Let us see how to access the Web Service using the Axis Client API with a normal Console Client. Following is the code snippet for the same.package com.tutorialsdesk.axis.client; import java.net.URL; import org.apache.axis.client.Service; import org.apache.axis.client.Call; public class EmployeeServiceClient { public static void main(String[] args) { try{ URL url = new URL("http://localhost:8080/TutorialsDesk.AxisWebService/services/EmployeeService"); Service service = new Service(); Call call = (Call)service.createCall(); call.setTargetEndpointAddress(url); Object result = call.invoke("getAllEmployees", new Object[]{}); System.out.println(result); result = call.invoke("getAgeForEmployee", new Object[]{"Martin"}); System.out.println(result); result = call.invoke("getSalaryForEmployee", new Object[]{"Ondrej"}); System.out.println(result); result = call.invoke("getDepartmentForEmployee", new Object[]{"Rahul"}); System.out.println(result); }catch(Exception exception){ exception.printStackTrace(); } } }
Hope we are able to explain you Java SOAP Webservices using Axis 2 and Tomcat , if you have any questions or suggestions please write to us using contact us form.(Second Menu from top left).
Please share us on social media if you like the tutorial.
Blogger Comment
Facebook Comment