Java API for XML Web Services (JAX-WS) is a technology for building web services and clients that communicate using XML. JAX-WS allows developers to write message-oriented as well as Remote Procedure Call-oriented (RPC-oriented) web services.
In JAX-WS, a web service operation invocation is represented by an XML-based protocol, such as SOAP. The SOAP specification defines the envelope structure, encoding rules, and conventions for representing web service invocations and responses. These calls and responses are transmitted as SOAP messages (XML files) over HTTP.
Although SOAP messages are complex, the JAX-WS API hides this complexity from the application developer. On the server side, the developer specifies the web service operations by defining methods in an interface written in the Java programming language. The developer also codes one or more classes that implement those methods. Client programs are also easy to code. A client creates a proxy (a local object representing the service) and then simply invokes methods on the proxy. With JAX-WS, the developer does not generate or parse SOAP messages. It is the JAX-WS runtime system that converts the API calls and responses to and from SOAP messages.
With JAX-WS, clients and web services have a big advantage: the platform independence of the Java programming language. In addition, JAX-WS is not restrictive: A JAX-WS client can access a web service that is not running on the Java platform, and vice versa. This flexibility is possible because JAX-WS uses technologies defined by the W3C: HTTP, SOAP, and WSDL. WSDL specifies an XML format for describing a service as a set of endpoints operating on messages.
This application has two parts-
- Server Part soapapp is running over Tomcat or Glassfish Web Server.
- Client Part soapcli is a command line interface.
This is a simple CRUD
application with backend MySQL
. MySQL database contains a
table friends
with fields id, name, rollno, email, phone, company. This
application provides SOAP Web Service. For more information look at UserService.wsdl
file.
- Java 1.8
- Tomcat Web Server
- MySQL DB 5.6
- IntelliJ IDEA ide
- JAX-WS Runtim
- Import soapapp repository into any Java EE IDE with
Tomcat
Installed. - Import
src/main/resources/friends.sql
in anymysql
database; - Change
mysql
configuration insoapapp/src/main/resources/mysql.properties
. - Run
mvn clean package
through IDE or Command Line. - Run on Tomcat Server or
maven install
and copytarget/restapp.war
into$TOMCAT/webapps/
directory. - Deploy soapapp through maven by this Command
mvn tomcat7:deploy
(for this tomcat server must be running)
Open http:https://localhost:8080/soapapp/UserService
in your browser means service deployed successfully.
- Import soapcli repository into any Java IDE
- Import wsdl generated source in your src/main/java using command (server must be running)
wsimport -keep http:https://localhost:8080/soapapp/UserService?wsdl
it will generated server requested sources incom/rahackya/ccassign/soapapp
directory. - Compile the client code using
mvn clean package
- Run
App.java
using commandmvn exec:java -Dexec.mainClass="com.rahackya.ccassign.App"
Run mvn test
for each server and client project and check build is success or not.
Please raise an issue or create pull request
if found something wrong.