Skip to main content

Restful WADL WebService that serves the XML

In this tutorial, I am showing you how to develop a simple  RESTFUL web application that serves the XML request and response
Jar files required :
  1. cxf-bundle-2.7.3.jar
  2. httpasyncclient-4.0-beta3.jar
  3. httpclient-4.2.1.jar
  4. httpcore-4.2.2.jar
  5. httpcore-nio-4.2.2.jar
  6. javax.ws.rs-api-2.0-m10.jar
  7. jaxb-impl-1.0.6.jar
  8. jettison-1.3.3.jar
  9. neethi-3.0.2.jar
  10. org-apache-commons-logging.jar
  11. xmlschema-core-2.0.jar

1. Creating a simple Bean class
package com.student;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "Student")
public class Student {
  private String name;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

}

2. Create a Web Service Endpoint Interface

package com.student;


public interface ChangeStudentDetails {
  Student changeName(Student student);
  Student getName();
}

3.  Create a Web Service Endpoint Implementation


package com.student;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Consumes("application/xml")
@Produces("application/xml")
public class ChangeStudentDetailsImpl implements ChangeStudentDetails {

  @POST
  @Path("/changeName")
  public Student changeName(Student student) {
    student.setName("HELLO " + student.getName());
    return student;
  }

  @GET
  @Path("/getName")
  public Student getName() {
    Student student = new Student();
    student.setName("Rockey");
    return student;
  }
}

4. The Web Application Deployment Descriptor

<web-app id="WebApp_ID" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemalocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
        <display-name>test</display-name>
        <servlet-name>test</servlet-name>
        <servlet-class>org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet</servlet-class>
        <init-param>
              <param-name>jaxrs.serviceClasses</param-name>
              <param-value>com.student.ChangeStudentDetailsImpl </param-value>
        </init-param>
       <init-param>
             <param-name>jaxrs.address</param-name>
             <param-value>/rest</param-value>
        </init-param>
</servlet>

<servlet-mapping>
       <servlet-name>test</servlet-name>
       <url-pattern>/test/*</url-pattern>
</servlet-mapping>

</web-app>

5. Run it
 You can access this example in the following URL.
  http://localhost:8080/application/test?_wadl

Comments

Popular posts from this blog

Setup Jenkins in Tomcat Webserver

Jenkins is a software that allows continuous integration. Jenkins will be installed on a server where the central build will take place. System Requirements: 1. JDK 2. Tomcat Java installation : 1. Download the latest JDK from Oracle's site 2. CentOS look for the package jdk-7u17-linux-x64.rpm (64-bit architecture) or jdk-7u17-linux-i586.rpm (32-bit architecture) 3. Once you download the installation package, use the command rpm -ivh 4. Confirm you have the correct Java by running java -version Tomcat installation: 1. Download Apache Tomcat archive file from Apache Tomcat official download page. You can use below wget command to download it. cd /tmp wget http://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.54/bin/apache-tomcat-7.0.54.tar.gz 2. After competed download extract archive file in /tmp directory and move to proper location as per your need. We are placing this under /usr/local directory. tar xzf apache-tomcat-7.0.54.tar.gz mv apache-t...

Encode from JavaScript and Decode at Java.

if you have a senerio like you want to send encoded parameter values from your web page  and decode them  at server side then this blog may be help you. JavaScript: Before submit the form I am encoding all the value entered by user so that it can not be read by humanly, for encoding the values I have written a method named  encodeBase64 <script> function encodeBase64(input){         var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";         input = escape(input);         var output = "";         var chr1, chr2, chr3 = "";         var enc1, enc2, enc3, enc4 = "";         var i = 0;              do {             chr1 = input.charCodeAt(i++);             chr2 = input.charCodeAt(i++);     ...

Apache and Tomcat Inegration in CentOS:

Apache  the most popular open source web server and Tomcat  the most popular open source application server for the Java application (JSP & Servlets). Benefits  to have a Apache Layer over the tomcat : Static Content – Apache serves static content better than Tomcat and supports better caching mechanisms. Availability – Apache allows load balancing and clustering of multiple Tomcat servers behind it, thus providing high availability. Security – Apache protects Tomcat through its built-in security features and through advanced third-party modules such as ModSecurity. Extensibility – Apache provides an abundance of modules for just about anything from URL rewriting (ModRewrite) to GeoIP services. With Apache you can use these modules to extend Tomcat's functionality. Java installation : 1 . download the latest JDK from  Oracle's site 2. CentOS look for the package jdk-7u17-linux-x64.rpm (64-bit architecture) or jdk-7u17-linux-i5...