How to Test (JAX-RS) RESTful Web Services

In this article i will show you how to test RESTful web service (JAX-RS), so far we have learned how to create a RESTful service and testing GET and POST requests through some web browser.  But in real time projects we will use different tools to test RESTful web services.  If you would like to test JAX-RS with web browser you can use the following tools…

  • Postman [ Chrome Extension ]
  • REST Client [ Chrome Extension ]
  • Advanced REST Client [ Chrome Extension ]
  • Rest Client [ Firefox Add-On ]

If you would like to test JAX-RS in your local

  • RESTClient UI
  • SoupUi

In this tutorial i will show you how to test jax-rs with RESTClient UI

  • Click here to Download RESTClient UI
  • Open the above link and download restclient-ui-3.2.2-jar-with-dependencies.jar
  • We are done, you no need to do any configurations kind of things, Just double click on the downloaded jar file to run the application, it looks like…

Lets take an example with GET, POST, PUT, DELETE for testing the web service.

Required Files

  • pom.xml
  • web.xml
  • TestingRestfulWebService.java

pom.xml

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>TestRestfulWebServiceExample</groupId>
  <artifactId>TestRestfulWebServiceExample</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
 
  <repositories>
        <repository>
            <id>maven2-repository.java.net</id>
            <name>Java.net Repository for Maven</name>
            <url>http://download.java.net/maven/2/</url>
            <layout>default</layout>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.2</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-server</artifactId>
            <version>1.8</version>
        </dependency>
        
    </dependencies>
 
      <build>
        <finalName>TestRestfulWebServiceExample</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <compilerVersion>1.5</compilerVersion>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
 
</project>

web.xml

12345678910111213141516171819202122<web-app id="WebApp_ID" version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>TestRestfulWebServiceExample</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.java4s</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>

TestingRestfulWebService.java

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455package com.java4s;
 
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
 

@Path("/customers")

public class TestingRestfulWebService {

@GET

@Produces("text/plain")

@Path("{id}")

public Response getCustomerDetails(@PathParam("id") String custId) { //CODE TO FETCH CUSTOMER DETAILS FROM THE DATABASE USING CUSTOMER ID String output = "Customer Details With ID "+custId+" Has Been fetched Successfully"; return Response.status(200).entity(output).build(); }

@POST

@Produces("text/plain")

@Path("{id}")

public Response insertCustomer(@PathParam("id") String custId) { //CODE TO INSERT CUSTOMER DETAILS USING CUSTOMER ID String output = "Customer Data With ID "+custId+" Has Been Saved Successfully"; return Response.status(200).entity(output).build(); }

@PUT

@Produces("text/plain")

@Path("{id}")

public Response updateCustomerDetails(@PathParam("id") String custId) { //CODE TO UPDATE CUSTOMER DETAILS USING CUSTOMER ID String output = "Customer Data With ID "+custId+" Has Been Updated Successfully"; return Response.status(200).entity(output).build(); }

@DELETE

@Produces("text/plain")

@Path("{id}")

public Response deleteCustomer(@PathParam("id") String custId) { //CODE TO DELETE CUSTOMER DETAILS USING CUSTOMER ID String output = "Customer With ID "+custId+" Has Been Deleted From the Database."; return Response.status(200).entity(output).build(); } }

Testing JAX-RS GET Request

  • Eclipse > Run the application > Now open Restclient UI
  • In the URL field enter  http://localhost:2013/TestRestfulWebServiceExample/rest/customers/100
  • Choose GET method in the ‘HTTP Method’ options > now hit the start button and check the output
  • Output

Testing JAX-RS POST Request

  • Choose POST method in the ‘HTTP Method’ options > Hit the start button and check the output
  • Output

Testing JAX-RS PUT Request

  • Choose PUT method in the ‘HTTP Method’ options > Hit the start button and check the output
  • Output

Testing JAX-RS DELETE Request

  • Choose DELETE method in the ‘HTTP Method’ options > Hit the start button and check the output
  • Output
  •  

Related Articles

post a comment