JAXB - Java Architecture for XML Binding. support for marshalling and unmarshalling.
marshalling :- converting java objects to XML files/contents
unmarshalling :- converting XML contents back to the java objects
here i have develop a sample application to demonstrate simple java web service with JAXB support.
you can get the fully source code of the project with following gitHub Repo.
https://github.com/chathurangat/jax-ws-jaxb-sample-app
this is just a sample implementation with some hard coded values in the back-end.
WebService
Employee.java
EmployeeService.java
EmployeeServiceImpl.java
web.xml
sun-jaxws.xml
pom.xml
WebClient
web client can be generated with the wsimport tool. the sample command is as follows. replace the value with your configurations.
wsimport -keep -verbose -d /home/chathuranga/Projects/jax-ws-tutorial/jax-ws-jaxb-sample-app/webClient/jaxb-client/src/main/java/ http://localhost:8080/employee-service/empServiceUrl?wsdl
EmpServiceClient.java
hope this will be helpful for you!
Thanks
Cahthuranga Tennakoon
www.chathurangaonline.com
marshalling :- converting java objects to XML files/contents
unmarshalling :- converting XML contents back to the java objects
here i have develop a sample application to demonstrate simple java web service with JAXB support.
you can get the fully source code of the project with following gitHub Repo.
https://github.com/chathurangat/jax-ws-jaxb-sample-app
this is just a sample implementation with some hard coded values in the back-end.
WebService
Employee.java
package com.chathurangaonline.samples.jax.ws.jaxb.model; public class Employee { private int id; private String empId; private String name; private String email; private String website; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getEmpId() { return empId; } public void setEmpId(String empId) { this.empId = empId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getWebsite() { return website; } public void setWebsite(String website) { this.website = website; } }
EmployeeService.java
package com.chathurangaonline.samples.jax.ws.jaxb; import com.chathurangaonline.samples.jax.ws.jaxb.model.Employee; import javax.jws.WebMethod; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; @WebService @SOAPBinding(style = SOAPBinding.Style.RPC) public interface EmployeeService { @WebMethod Employee create(Employee employee); @WebMethod Employee findEmployeeById(String empId); }
EmployeeServiceImpl.java
package com.chathurangaonline.samples.jax.ws.jaxb; import com.chathurangaonline.samples.jax.ws.jaxb.model.Employee; import javax.jws.WebMethod; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; @WebService @SOAPBinding(style = SOAPBinding.Style.RPC) public class EmployeeServiceImpl implements EmployeeService{ @WebMethod public Employee create(Employee employee) { //todo sample implementation if(employee!=null && employee.getEmail()!=null && employee.getEmail().equals("chathuranga.t@gmail.com")){ employee.setEmpId("emp4235"); employee.setName("chathuranga tennakoon"); employee.setWebsite("www.chathurangaonline.com"); } return employee; } @WebMethod public Employee findEmployeeById(String empId) { //todo sample implementation if(empId!=null && empId.equals("emp4235")){ Employee employee = new Employee(); employee.setId(123); employee.setEmpId("emp4235"); employee.setName("chathuranga tennakoon"); employee.setWebsite("www.chathurangaonline.com"); employee.setEmail("chathuranga.t@gmail.com"); } Employee employee = new Employee(); employee.setName("chathuranga tennakoon"); return employee; } }
web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <listener> <listener-class> com.sun.xml.ws.transport.http.servlet.WSServletContextListener </listener-class> </listener> <servlet> <servlet-name>empService</servlet-name> <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>empService</servlet-name> <url-pattern>/empServiceUrl</url-pattern> </servlet-mapping> </web-app>
sun-jaxws.xml
<?xml version="1.0" encoding="UTF-8"?> <endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0"> <endpoint name="empService" implementation="com.chathurangaonline.samples.jax.ws.jaxb.EmployeeServiceImpl" url-pattern="/empServiceUrl"/> </endpoints>
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.chathurangaonline.jax.ws.samples</groupId> <artifactId>jaxb-sample-web-service</artifactId> <packaging>war</packaging> <version>1.0</version> <name>jaxb-sample-web-service Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>employee-service</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <!--compiles with java 7--> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <!--WAR plugin--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.5</version> </plugin> </plugins> </build> </project>
WebClient
web client can be generated with the wsimport tool. the sample command is as follows. replace the value with your configurations.
wsimport -keep -verbose -d /home/chathuranga/Projects/jax-ws-tutorial/jax-ws-jaxb-sample-app/webClient/jaxb-client/src/main/java/ http://localhost:8080/employee-service/empServiceUrl?wsdl
EmpServiceClient.java
import com.chathurangaonline.samples.jax.ws.jaxb.Employee; import com.chathurangaonline.samples.jax.ws.jaxb.EmployeeServiceImpl; import com.chathurangaonline.samples.jax.ws.jaxb.EmployeeServiceImplService; /** * <p> * sample web service client implementation * </p> * * @Author Chathuranga Tennakoon */ public class EmpServiceClient { public static void main(String[] args) { EmployeeServiceImplService employeeServiceImplService = new EmployeeServiceImplService(); EmployeeServiceImpl employeeService = employeeServiceImplService.getEmployeeServiceImplPort(); //creating the employee Employee employeeOb = new Employee(); employeeOb.setEmail("chathuranga.t@gmail.com"); Employee employeeCreated = employeeService.create(employeeOb); System.out.println(" employee created ["+employeeCreated.getEmpId()+"]"); //find the employee with id Employee employee = employeeService.findEmployeeById("emp4235"); System.out.println(" employee found ["+ employee.getName()+"]"); } }
hope this will be helpful for you!
Thanks
Cahthuranga Tennakoon
www.chathurangaonline.com