Wednesday, 1 January 2014

JAX-RS @GET using RESTful webservice

In this tutorial we are going to see  about RESTful web service’s @GET annotation
1. Create new Dynamic web project by choosing File –> New –> Dynamic Web Project .
2. Create the Project called RESTful-WebService
3. Add the following jar into WEF-INF/lib folder
add jar
4. Create package called com.javatutorialscorner.jaxrs.get under RESTful-WebService
5. Create Java class RESTfulGet under com.javatutorialscorner.jaxrs.get package
RESTfulGet.java
package com.javatutorialscorner.jaxrs.get;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;

@Path("/getservice")
public class RESTfulGet {

 @GET
 @Path("{site}")
 public Response getSite(@PathParam("site") String site) {
  return Response.status(200).entity("Web Site : " + site).build();

 }
}

6.Configure Jersey Servlet Dispatcher
you need to configure REST as servlet in web.xml.
web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>JAX-RS-Path</display-name>
<servlet>
  <servlet-name>jersey-serlvet</servlet-name>
  <servlet-class>
                     com.sun.jersey.spi.container.servlet.ServletContainer
                </servlet-class>
  <init-param>
       <param-name>com.sun.jersey.config.property.packages</param-name>
       <param-value>com.javatutorialscorner.jaxrs.get</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>
 
 <servlet-mapping>
  <servlet-name>jersey-serlvet</servlet-name>
  <url-pattern>/rest/*</url-pattern>
 </servlet-mapping>
</web-app>

The servlet class available in jersey com.sun.jersey.spi.container.servlet.ServletContainer. The init param com.sun.jersey.config.property.package is used to define in which package jersey will look for the service classes.This package points to your resource class package. URL pattern is the part of base URL

Now you can run the service and access the service by calling the following URL

http://localhost:8080/RESTful-WebService/rest/getservice/javatutorialscorner.com

you can call the service by using web browser or from client class.

Web browser call
getservice
Create Client

Create package called com.javatutorialscorner.jaxrs.client under RESTful-WebService project

Create Client Java Class RESTfulClient under  com.javatutorialscorner.jaxrs.client package

RESTfulClient .java

package com.javatutorialscorner.jaxrs.client;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;

public class RESTfulClient {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String baseURI = "http://localhost:8080/RESTful-WebService";
  ClientConfig config = new DefaultClientConfig();
  Client client = Client.create(config);
  WebResource service = client.resource(baseURI);
  System.out.println("output for GET Service ");
  System.out.println(service.path("rest").path("getservice/javatutorialscorner.com")
    .get(ClientResponse.class).getEntity(String.class));
 }

}

Now you can run the client and see the following output in console

output for GET Service

Web Site : javatutorialscorner.com

0 comments

Post a Comment