AdSenseHeader


   This Post explains the Jersey client API’s to create RESTful java client  GET, POST and PUT request to Rest API service.

       1. Jersey Client Dependency
 Declare the fallowing dependencies in the pom.xml file.
<dependency>
              <groupId>org.glassfish.jersey.containers</groupId>
              <artifactId>jersey-container-servlet</artifactId>
              <version>2.5.1</version>
       </dependency>
       <dependency>
              <groupId>org.glassfish.jersey.core</groupId>
              <artifactId>jersey-client</artifactId>
              <version>2.5.1</version>
       </dependency>
       <dependency>
              <groupId>com.fasterxml.jackson.jaxrs</groupId>
              <artifactId>jackson-jaxrs-json-provider</artifactId>
              <version>2.2.3</version>
       </dependency>
       <dependency>
              <groupId>com.google.code.gson</groupId>
              <artifactId>gson</artifactId>
              <version>2.3</version>
       </dependency>


2.  GET Request, POST Request, PUT Request
REST Service Example refer before post

package com.sparktheprograms.jersey;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

@Path("api")
public class JerseyService {
      
       @GET
       @Produces(MediaType.TEXT_PLAIN)
       public String helloMessage() {
              return "Hey, This is Jersey !";
       }
      
       @GET
       @Path("/getMessage")
       @Produces(MediaType.APPLICATION_JSON)
       public Message message() {
              Message message = new Message();
              message.setSite("www.9threes.com");
              message.setMessage("JERSEY Sample Application");
              return message;
       }
      
       @POST
       @Path("/postMessage")
       @Consumes(MediaType.APPLICATION_JSON)
       public Response createMessageJson(Message message) {
              String data = "Message Saved"+message;
              return Response.status(200).entity(data).build();
       }
      
       @PUT
       @Path("/putMessage")
       @Consumes(MediaType.APPLICATION_JSON)
       public Response putMessage(Message msg) {
              String data = "Message Saved"+msg;
              return Response.status(200).entity(data).build();
       }
}


3.  Jersey Client to send GET Request, Post Request and PUT Request to Jersey Service then jersey service returned the Response to Jersey Client.

package com.sparktheprograms.jersey.client;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import com.google.gson.Gson;
import com.sparktheprograms.jersey.Message;

public class JerseyClient {
       public static final String baseUri = "http://localhost:8888/JerseySampleApp/rest/api";
       private Client client = null;
       private WebTarget target = null;
      
       public JerseyClient() {
              client = ClientBuilder.newClient();
              target = client.target(baseUri);
       }
      
       public void reloadUri() {
              target = null;
              target = client.target(baseUri);
       }
      
       public void getRequest() {
              target = target.path("/getMessage");
              // GET Request from Jersey Client
              Response response =  target.request(MediaType.APPLICATION_JSON) 
                                   .get(Response.class);                                
              if(response.getStatus() == 200) {
                     Message message = response.readEntity(new GenericType<Message>() {});
                     System.out.println(message.getSite());
              }
       }
      
       public void postRequest() {
              reloadUri();
              String input ="{\"site\":\"www.9threes.com\",\"message\":\"is new domain\"}";
              target = target.path("/postMessage");

              // POST Request from Jersey Client
              Response response = target.request(MediaType.APPLICATION_JSON)
               .post(Entity.entity(input, MediaType.APPLICATION_JSON),Response.class);
             
              System.out.println(response);
              if(response.getStatus() == 200) {
                     System.out.println("post success");
              }
       }
      
       public void postRequestUsingGson() {
              reloadUri();
              target = target.path("/postMessage");
              Gson gson = new Gson();
              Message msg = new Message();
              msg.setSite("9threes");
              msg.setMessage("its a new Blog");
              String input = gson.toJson(msg);

              //POST Request from jersey Client Using GSON
              Response response = target.request(MediaType.APPLICATION_JSON)
               .post(Entity.entity(input, MediaType.APPLICATION_JSON),Response.class);
             
              System.out.println(response);
              if(response.getStatus() == 200) {
                     System.out.println("post request using Json is Success");
              }
       }
      
       public void putRequest() {
              reloadUri();
              target = target.path("putMessage");
              String input ="{\"site\":\"www.9threes.com\",\"message\":\"is new domain\"}";
              
              //PUT Request from Jersey Client Example
              Response response = target.request(MediaType.APPLICATION_JSON)
               .put(Entity.entity(input, MediaType.APPLICATION_JSON),Response.class);
             
              System.out.println(response);
              if(response.getStatus() == 200) {
                     System.out.println("put request using Json is Success");
              }
       }
      
       public static void main(String args[]) throws Exception {
              try {
                     JerseyClient jerseyClient = new JerseyClient();
                     jerseyClient.getRequest();
                     jerseyClient.postRequest();
                     jerseyClient.postRequestUsingGson();
                     jerseyClient.putRequest();
              } catch(Exception e) {
                     System.out.println(e);
              }
       }

}

Output of above Jersey client Example


        In the above Jersey client example example implemented the GET Request , POST Request and PUT  Request Methods. I implemented two types of methods for POST Request above jersey Client Example ,one method is implemented with JSON data and second method is implemented using GSON API for Converting the JAVA POJO object into JSON format for Jersey Service.
 


4 comments:

  1. Message message = response.readEntity(new GenericType() {}); //This line throws an Error of getRequest() ....kindly fix this....IDE suggests add cast to response.......fix this error pls....ASAP.

    ReplyDelete
  2. How to select the value of baseUri....In my project....package name is "com"...project name is suppose"RestConsumeExample" running on port 8080 then ?

    ReplyDelete
  3. http://localhost:8080/RestConsumeExam/jaxrs/api...........I am getting output as "Hey this is Jersey".....but i try to invoke another like get /put through url......exception comes....how to get the output what u had got.....should i run the application or the client only on server ?

    ReplyDelete
  4. đồng tâm
    game mu
    cho thuê nhà trọ
    cho thuê phòng trọ
    nhac san cuc manh
    số điện thoại tư vấn pháp luật miễn phí
    văn phòng luật
    tổng đài tư vấn pháp luật
    dịch vụ thành lập công ty trọn gói
    64 nước cờ trên bàn thương lượng ebook
    mbp là gì
    thuyết erg
    các nghịch lý nổi tiếng
    chi square test là gì
    nghệ thuật nói chuyện trước công chúng dale carnegie
    định lý coase
    học thuyết kỳ vọng của victor vroom
    chiến thắng con quỷ trong bạn audio
    điểm cân bằng nash

    - Cho dù Sở Giao thông có giao quyền xây dựng và kinh doanh cao tốc cho An Đô, nhưng 400 triệu đó. Ha ha, Quốc Đống, miệng chú không nhỏ nhỉ. Một năm An Đô thu được bao nhiêu mà dồn 400 triệu vào, như vậy cán bộ công chức còn muốn ăn cơm không?
    Thái Chánh Dương cười khổ một tiếng.

    - Chính quyền thành phố không muốn bỏ tiền thì có thể dùng cách BOT. Bây giờ trên thế giới hay dùng cách này, nó cũng hợp với tình hình An Đô. Đường cao tốc này đi thông qua Huyện Hoa Dương – huyện có kinh tế phát triển nhất An Đô, lại là con đường nhất định phải tới sân bay. Bây giờ việc di chuyển rất ùn tắc. Em nghe nói Cục Hàng không dân dụng đã nói chuyện này với Tỉnh ủy, Ủy ban nhân dân tỉnh, vừa lúc có thể nhân cơ hội này.
    Triệu Quốc Đống lạnh nhạt nói.

    - Cách BOT?
    Thái Chánh Dương trầm ngâm một chút. Y biết cách này, đó chính là đổi quyền khai thác, kinh doanh trong mấy năm để đổi lấy tài chính xây dựng.
    - Bây giờ ở Trung Quốc hình như chưa làm như vậy mà.

    - Sao chưa có, nhà máy điện ở Quảng Tây không phải dùng cách nào sao? Hơn nữa còn là tám năm về trước, chẳng qua áp dụng BOT vào xây dựng cao tốc thì chưa có mà thôi. Chẳng lẽ Thành phố An Đô chúng ta không thể đi trước? Bí thư Ninh Pháp từ khu phát triển nhất ở duyên hải, tư tưởng của Bí thư Ninh vượt xa chúng ta. Em nghĩ cách này sẽ được Bí thư Ninh chú ý.

    Nếu như nói câu trước của Triệu Quốc Đống chỉ làm Thái Chánh Dương động tâm, nhưng hai câu cuối lại làm Thái Chánh Dương quyết định thử một lần xem sao?

    ReplyDelete

 
Top