Over a million developers have joined DZone.

Setting Up JAX-RS in Pre-Java EE 6 Environments

· Java Zone

Learn more about the advantages of moving from a monolithic to microservices architecture.  Brought to you in partnership with IBM.

The JAX-RS API for developing RESTful web services is a Java EE 6 API. Java EE 5 application servers and Tomcat don't come with JAX-RS, so you will need to add it into your project. This article shows how to use Sun's Jersey implementation with Maven, and in case you are interested, how to integrate it with Spring.

Start by adding dependencies to your Maven pom.xml:


<name>Java.net Repository for Maven</name>

The Jersey implementation is a servlet, but you can also use it as a servlet filter. I found that using it as a servlet made it either not respond to any requests, or it would break other things like JSF. So, I recommend using the servlet filter approach:

<filter-name>Jersey Web Application</filter-name>
<filter-name>Jersey Web Application</filter-name>


This configures Jersey to respond to /rest/* URIs. It also enables the logging filter so you can see the request and response headers and bodies. The PostReplaceFilter enables support for sending an X-HTTP-Method-Override header in POST requests to translate it into a PUT or DELETE. This is necessary for supporting some RESTful web service clients that don't support PUT or DELETE.

The com.sun.jersey.config.property.packages init-param tells Jersey which package(s) to recursively scan for classes that have JAX-RS annotations. I think you can separate multiple packages with a semicolon.

Your JAX-RS resources are managed by Jersey. You can inject Spring beans into it using the com.sun.jersey.spi.inject.Inject annotation, as long as you have the jersey-spring dependency added to your pom.xml in Maven. For example:

  package com.ryandelaplante.example;  

import com.sun.jersey.spi.inject.Inject;
import javax.ws.rs.Consumes;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

public class OrdersResource {
private OrderService orderService;


The OrderService will be loaded from the Spring container.

From http://www.ryandelaplante.com

From Idea to Application gives you the architecture to quickly build, manage and run a range of applications (web, mobile, big data, new smart devices, etc.) on an open-standard, cloud-based platform. See why developers are using IBM Bluemix. Brought to you in partnership with IBM.


The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}