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

How to use logging in SpringBoot with code samples

Python While Loop with code samples

How to convert a List to a Set