Simple Rest Example with JAX-RS and JSON

Project creation

First of all let us create our Web-Application Project. For this, navigate to the directory (or create the directory) where you want to place your project.
Have you done this, just open a console (like the GIT Bash) in this.

For creating the project we will use the following maven archetype.

 mvn archetype:generate -Dfilter=com.airhacks:javaee7-essentials-archetype

Just copy this one in your bash and execute it.

You´ll have to set some properties like the groupId or the artifactId. Feel free to name your application however you want.

After the creation you´ll see a folder named with your artifactId.

Let´s start coding

Open the Maven-Project you have just created in the IDE of your choice (for me, it is NetBeans 8.2).

After you opened the project, you may have noticed that there is already a class in your project.


 * Configures a JAX-RS endpoint. Delete this class, if you are not exposing
 * JAX-RS resources in your application.
 * @author
public class JAXRSConfiguration extends Application {


The JAXRSConfiguration class is the entrance in your application.
You are only allowed to have one(!) JAXRSConfiguration class, per artifact.

Change the value of @ApplicationPath from resource to api just as I did.

And now let´s create the following packages:

  • entity
  • control
  • boundary

Entity Package

package com.javadevcorner.entity;

 * @author
public class Hero {

    private int id;
    private String heroName;
    private String realName;

    public Hero() {

    //setter and getter

Control Package

package com.javadevcorner.control;

import com.entity.Hero;
import java.util.ArrayList;
import java.util.List;
 * @author
public class Avengers {
    public final static List AVENGERS = new ArrayList<>();
    static  {
        Hero captainAmerica = new Hero();
        captainAmerica.setHeroName("Captain America");
        captainAmerica.setRealName("Steve Rogers");
        Hero ironMan = new Hero();
        ironMan.setHeroName("Iron Man");
        ironMan.setRealName("Tony Stark");
        Hero hulk = new Hero();
        hulk.setRealName("Dr. Bruce Banner");


Boundary Package

First of all move the JAXRSConfiguration class to the boundary section. Just for clean code and overview, not technical background.
And then let´s implement our JAX-RS Get Method. Create the class AvengersService and implement as followed.

package com.javadevcorner.boundary;

import com.control.Avengers;

 * @author
public class AvengersService {

    public Response avengersWeNeedYou() {
        return Response


Let´s talk about what our implementation is doing

  • @Path as Class Annotation: Just specifies the path on which the HTTP-Request can find our Avengers
  • @GET on our method: Specifies that this Method is a HTTP-GET Method
  • @Produces on our method: Defines which sort of Response the Request can expect

But enough theory for now, let´s test our implementation.

Start your Wildfly installation and make sure it is running. If you haven´t have one please check out this tutorial.

To deploy our Application to Wildfly I recommend to you the Wildfly Maven Plugin. When you have added this Plugin to your project, navigate with a console in the project directory, in which you have your pom.xml and type:

mvn wildfly:deploy

The console will now print some output. After the build finished with success, open your browser and open your Rest-Application (for the pretty view of my JSON I installed a Google Chrome Plugin)

So thanks for reading and have fun using JAX-RS. 



Feel free to share

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.