JAX-WS Web services using Eclipse
In this article we shall learn to implement JAX-WS Endpoint and Client using eclipse.
Note: In general words, “web service endpoint” is a service which published outside for user to access; where “web service client” is the party who access the published service.
Environment Used
JDK 7 (Java SE 7)
Eclipse JUNO IDE
JAX-WS Web Service End Point
Create a java project(File -> New -> Java Project) “JAXWsServer” with the following folder structure.
WS-Service Endpoint Interface
File: Square.java
package com.webServices; import javax.jws.WebMethod; import javax.jws.WebService; @WebService public interface Square { @WebMethod public int square(int num); }
WS-Service Endpoint Implementation
File: SquareImpl.java
package com.webServices; import javax.jws.WebService; @WebService(endpointInterface = "com.webServices.Square") public class SquareImpl implements Square { public int square(int num) { return num * num; } }
Endpoint publisher
File: SquareWSPublisher.java
package com.webServices; import javax.xml.ws.Endpoint; public class SquareWSPublisher { public static void main(String[] args) { Endpoint.publish("http://localhost:8091/WS/Square", new SquareImpl()); } }
Run the endpoint publisher, by right clicking on the above program -> Run As -> Java Application, now your “Square web service” is deployed in URL http://localhost:8091/WS/Square
.
Test It
You can test the deployed web service by accessing the generated WSDL (Web Service Definition Language) document via this URL http://localhost:8091/WS/Square?wsdl
.
Developing Web Service Client
Create a new java project and name it JAXWSClient
Client stubs
To generate the client stubs you need to open the command prompt and enter the following wsimport command
CD %CLIENT_PROJECT_HOME%\src wsimport - keep http://localhost:8091/WS/Square?wsdl
After running the above command, refresh your “JAXWSClient” project in eclipse, Now you will find java classes generated under src folder of “JAXWSClient” project.
Where is wsimport?
This wsimport tool is bundle with the JDK, you can find it at “JDK_PATH/bin” folder.
Client Class
Lets create Client Class which consumes the web services.
package com.client; import com.webservices.Square; import com.webservices.SquareImplService; public class Client { public static void main(String[] args) { SquareImplService service = new SquareImplService(); Square square = service.getSquareImplPort(); System.out.println("Square of 10 is- " + square.square(10)); } }
Run it
Now right click on the above program -> Run As -> Java Application and you will get following output.
Square of 10 is- 100
That’s all on how to create a JAX-WS Endpoint and Client in eclipse.