SOAP WEB SERVICE
This blog describes below two steps in details using Eclipse
1) Create Web Service
2) Consume Web Service
..................................................................................................................................................................
1) Create Web Service
- Create New Java Project in Eclipse
- Create new package and create one class in it called Forms.java
package com.praveenws.forms;
import javax.jws.WebService;
@WebService
public class Forms {
private String firstName;
private String lastName;
public void addFirstName(String fname) {
firstName = fname;
}
public void addLastName(String lname) {
lastName = lname;
}
public String fetchUserName() {
return (firstName + lastName);
}
}
- @WebService annotation tells Java interpreter that we intend to publish ALL the methods of this class as a web service. If we want to publish only particular methods then we can use @WebMethod annotation before the method signature. In order to publish our class and its methods as web service we need to crate appropriate stub files or artifacts for web service deployment and invocation. Fortunately Java provides a tool called ‘wsgen’ which generates JAX-WS portable artifacts used in JAX-WS web services.
- Open command prompt in project path and hit below command
Note:
cp -> classpath for our class ie bin
d -> tell where to place generated output files which is also bin
- Create one more package with class say FormsEndpointPublisher,java
import javax.xml.ws.Endpoint;
import com.praveenws.forms.Forms;
public class FormsEndpointPublisher {
public static void main(String[] args) {
Endpoint.publish("http://localhost:8881/FormWS/Forms", new Forms());
}
}
Note: Endpoint.publish method publish the class as a web service endpoint.
- Run this class as ‘Java Application’.
http://localhost:8881/FormWS/Forms?wsdl
- When you run the application, the Java SE platform has a small web application server that will publish the web service at the address while the JVM is running. If you see a large amount of XML that describes the functionality behind the web service, then the deployment is successful.
2) Consume Web Service
- Create New Java project which will be client for using our web service.
- Just like ‘wsgen’, JAX-WS also provides a tool called ‘wsimport’ for generating the artifacts required for creating and consuming a web service. ‘wsimport’ takes a wsdl file as input.
- From the project folder in command prompt or terminal, issue the following command,
- Now refresh the current project, you will notice it generated lot of files here to support exising web service which can be used now in this project.
- Now create new pakage with a Java class say FormsClient.java to run this client
import com.praveenws.forms.Forms;
import com.praveenws.forms.FormsService;
public class FormsClient {
public static void main(String[] args) {
FormsService formService = new FormsService();
Forms forms = formService.getFormsPort();
forms.addFirstName("Chacha");
forms.addLastName("Choudhary");
System.out.println("Name : " + forms.fetchUserName());
}
}
- Run this class as Java Application, you will get the following output in the console.
Note: FormsService class got created automatically in project when imported web service.
No comments:
Post a Comment