How to create a JAX-RS Jersey client application for consuming a REST service

In this blog post, I will be demonstrating how you can create a JAX-RS client application using Jersey JAX-RS client implementation.

What is JAX-RS and Jersey Client API?

JAX-RS is the Java specification for Restful web services. It is just a specification, it does not provide an implementation. Jersey is the reference implementation of JAX-RS specification. There are other implementations of JAX-RS like RESTEasy, etc  The first release of JAX-RS was JAX-RS 1.0. It did not provide a client API. So vendors like Jersey, RESTEasy provided their own client APIs. JAX-RS 2.0 (which is the latest release of JAX-RS) provides a client API. The latest release of Jersey (2.25.1) implements this client API. So in addition to its proprietary client API, Jersey also implements the JAX-RS client API.  While implementing a REST client that uses Jersey, it is better to use the JAX-RS specific client implementation and not Jersey’s client API. So even if the JAX-RS vendor is changed from Jersey to something else like RESTEasy, the code will still work.

How to create a JAX-RS client

Project creation and configuration

Step 1 – Create a new Java Project in Eclipse (Refer to this blog post). You should see a project as follows:

Step 2 – Convert to a Maven project.

 

Step 2a – Right Click on Project –> Configure –> Convert to Maven Project

 

Step 2b – Click on finish

 

Step 3 – Add Maven dependencies to POM file.

Add the following:

  <dependencies>   <dependency>    <groupId>javax.ws.rs</groupId>    <artifactId>javax.ws.rs-api</artifactId>    <version>2.0.1</version></dependency>   <dependency>    <groupId>org.glassfish.jersey.core</groupId>    <artifactId>jersey-client</artifactId>    <version>2.25.1</version></dependency>  </dependencies>

So your POM file will look as follows:

Write Code

Create a new Java class and write the following code:

public class JaxRsClientDemo {    static String URI = "http://localhost:8080/RestJAXRSJerseyDemo/learnjava/myservice";  public static void main(String args[]) {  Client client = ClientBuilder.newClient();  WebTarget target = client.target(URI);  Invocation.Builder invocationBuilder = target.request();  Response response = invocationBuilder.get();  String responseStr = response.readEntity(String.class);  System.out.println("Server Response:"+responseStr);}

 

Test code

Step 1 – Ensure that a REST service is running. Refer to this blog post.

Step 2 – Run the JaxRsClientDemo as a java program. This will produce the following output on the console:

You can download the source code for this at the GitHub repository here.

 

 

Comments

Popular posts from this blog

Java 8 DoubleFunction Example

How to convert a List to a Set

ArrayList Vs LinkedList