Friday 11, Apr 2025
We are moved to new domain
Click -> www.ehowtonow.com
Sunday, 1 December 2013

JAX-RS to Produce JSON using Jackson


In this tutorial we are going to see how to produce JSON result type using RESTful web service and Jackson
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.jsonservice under RESTful-WebService
5. Create Java class JSONService under com.javatutorialscorner.jaxrs.jsonservice package
JSONService.java
package com.javatutorialscorner.jaxrs.jsonservice;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;


@Path("producejson")
public class JSONService {

@GET
@Path("get")
@Produces(MediaType.APPLICATION_JSON)
public Student getStudentDetail(){
Student student = new Student();
student.setName("Ram");
student.setId(33);
student.setDepartment("EEE");
student.setYear(2011);

return student;
}

}

In above program Jackson used to convert object to JSON. Jersey uses the @Produces(MediaType.APPLICATION_JSON) annotation will convert object to JSON automatically.For this conversion jersey-json.jar is required.

6. Create Java class Student under com.javatutorialscorner.jaxrs.jsonservice package

Student.java
package com.javatutorialscorner.jaxrs.jsonservice;

public class Student {

String name;
int id;
String department;
int year;

public String getName() {
return name;
}

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

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getDepartment() {
return department;
}

public void setDepartment(String department) {
this.department = department;
}

public int getYear() {
return year;
}

public void setYear(int year) {
this.year = year;
}

}

Jersey Jackson convert this class object into JSON.

7.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.jsonservice</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</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

<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>

In this web.xml above lines are additionally added for Jersey to Support JSON-Object mapping.

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

http://localhost:8080/RESTful-WebService/rest/producejson/get

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

Web browser call

output

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 JSON Service ");
System.out
.println(service
.path("rest")
.path("producejson/get")
.get(ClientResponse.class).getEntity(String.class));

}

}

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

output for JSON Service

{"name":"Ram","id":33,"department":"EEE","year":2011}

Shop and help us

Flipkart Offer Snapdeal offer Amazon.in offer Amazon.com offer

Related Posts:

  • Hello World RESTful Web serviceCreate new Dynamic Web Project and  give project name as RESTful_HelloWorld Copy all jar files into WEB-INF/lib folder.Select build path add jar in your build path.Create ClassCreate package called com.javatutorialscorn… Read More
  • JAX-RS to Consume JSON using JacksonIn this tutorial we are going to see how to consume JSON type input using RESTful web service and Jackson 1. Create new Dynamic web project by choosing File –> New –> Dynamic Web Project . 2. Create the Project called… Read More
  • JAX-RS Single Param with @PathParmIn this tutorial we are going to see how to pass parameter to RESTful web service via URL using @PathParam1. Create new Dynamic web project by choosing File –> New –> Dynamic Web Project . 2. Create the Project called R… Read More
  • JAX-RS Multiple Parameter with @PathParamIn this tutorial we are going to see how to pass multiple parameters to RESTful web service via URL using @PathParam 1. Create new Dynamic web project by choosing File –> New –> Dynamic Web Project . 2. Create the Proje… Read More
  • JAX-RS @PATH for URIIn previous tutorials we have seen simple Hello World RESTful Web service using JAX-RS.In this tutorial we will we see @PATH annotation used for URI in RESTful web service.follow the steps given belowCreate new Dynamic Web Pr… Read More
  • Blogger Comments
  • Facebook Comments
  • Disqus Comments

0 comments:

Post a Comment

Item Reviewed: JAX-RS to Produce JSON using Jackson Rating: 5 Reviewed By: eHowToNow