Welcome to the Community Wiki for Project Jersey!
Project Jersey is an open source community that is building the reference implementation of JSR-311: JAX-RS - Java API for RESTful Web Services. Jersey implements support for the annotations defined in JSR-311, making it easy for developers to build RESTful web services with Java and the Java JVM. Besides implementing the JSR-311 API, Jersey provides additional API and extension points (SPI) not specified by JSR-311 so that developers can extend this JSR to suit their specific needs. This wiki contains information for the developers using Jersey, for the developers improving Jersey, and for the people with a general interest in RESTful Web Services.
We hope that you will find the Jersey Wiki to be a valuable informational resource. We actively encourage you to become a contributor and share your knowledge about Jersey and RESTful Web Services with the rest of the open source community. Contributors to existing or new wiki topics only need to have a registered user id and some knowledge they'd like to share.
If you're new to Jersey and/or RESTful Web Services, and are unable to find the information you need on this wiki page, please leave us a comment and we'll do our best to find the answer and add it to the wiki so that it will be available to all.
A document that provides an overview of Project Jersey is in the process of being written. Read the draft and comment on what you'd like to see added to this overview, or become a contributor and add onto it yourself!
Jersey 0.9 Released!
Jersey 0.9 was released on August 22, 2008. To learn more about what's new in this release, and how to download and use this release, read the Paul Sandoz blog at http://blogs.sun.com/sandoz/entry/jersey_0_9_is_released.
The dependencies document is here: https://jersey.dev.java.net/source/browse/*checkout*/jersey/branches/jersey-0.9/jersey/dependencies.html
Other recent releases include the following:
- Jersey 0.7 April 18, 2008
- Jersey 0.8 June 20, 2008
- Jersey 0.9 August 22, 2008
- Jersey 0.10 ???
- Jersey FCS ???
What are RESTful Web Services?
Representational State Transfer (REST) is a software application architecture modeled after the way data is represented, accessed, and modified on the web. In the REST architecture, data and functionality are considered resources, and these resources are accessed using Uniform Resource Identifiers (URIs), typically links on the web. The resources are acted upon by using a set of simple, well-defined operations. The REST architecture is fundamentally a client-server architecture, and is designed to use a stateless communication protocol, typically HTTP. In the REST architecture, clients and servers exchange representations of resources using a standardized interface and protocol. These principles encourages REST applications to be simple, lightweight, and have high performance.
RESTful web services are web applications built upon the REST architecture. They:
- Expose resources (data and functionality) through web URIs.
- Use the four main HTTP methods to create, retrieve, update, and delete resources.
To find out more about REST, try these sources for more information:
- Fielding Dissertation: Chapter 5: Representational State Transfer (REST), at http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
- Wikipedia article on Representational State Transfer (REST), at http://en.wikipedia.org/wiki/RESTful
Congratulations to the JavaOne Rock Stars!!
Two of the Jersey team developers have been selected as 2008 JavaOne Conference Rock Stars! Congratulations to Paul Sandoz and Marc Hadley! The Rock Stars are recognized in conference attendee surveys for outstanding session content and speaking ability.
You can experience their outstanding session in multimedia (video, audio, PDF file) format by clicking on the session link for the JavaOne Technical Session that earned them this honor.
Get Started!
- Learn more about Jersey. Read Introduction to Jersey and RESTful Web Services, which describes the REST architecture, RESTful web services, and Sun's reference implementation for JAX-RS (JavaTM API for RESTful Web Services, JSR-311), which is referred to as Jersey.
- Download and install Jersey. Read Installing Jersey for more information on this topic. You can also refer to the Project Jersey website for more information on Jersey, downloads, mailing lists, and issue tracker.
- See the Getting started page for information on how to develop a simple application.
- Learn more about using the Jersey annotations: @PATH, @GET, @POST, @PUT, @DELETE, @HEAD, @QUERYPARAM, @PATHPARAM, @CONSUMEMIME, @PROVIDER, and @PRODUCEMIME. You can do this by looking at the RESTful Web Services Developer's Guide, chapter Creating a RESTful Resource Class, or by viewing the API docs.
- Check out the examples that ship with Jersey. For more info on the examples, see the section below titled "Check Out the Example Applications!"
- Deploy and run your Jersey application. For more information, read Deploying and Running Jersey Applications.
- Read the blogs (referenced below) or read the Jersey FAQ for information on more advanced topics.
Review the Draft Documentation
An early draft of the RESTful Web Services Developer's Guide for the Jersey 1.0 and GlassFish v3 Prelude releases is available for review and comment at the GlassFish Documentation wiki. This is your chance to help shape the documentation. If some of the information is too simple for your needs, let us know where we need to add more depth. If some of the information is too dense, let us know where we need to provide more explanation. If there are topics that are not covered, let us know what you're looking for. If there is information that is incorrect, please point it out to us. And, if you think it is extremely well-written, you can leave us a note about that as well
.
Learn More!
- Read the RESTful Web Services Developer's Guide (also known as The Jersey Tutorial) for more information on developing Jersey applications.
- Read Getting Started with RESTful Web Services on GlassFish to learn how to develop RESTful web services using the NetBeans IDE and GlassFish.
- Browse the API docs for the latest version of JSR-311: JAX-RS
- Peruse the Jersey team members blogs:
- Earthly Powers, by Paul Sandoz, at http://blogs.sun.com/sandoz/category/REST.
- Marc Hadley's Blog, at http://weblogs.java.net/blog/mhadley/.
- Japod's Blog, by Jakub Podlesak, at http://blogs.sun.com/japod/category/REST.
- Refer to the Jersey FAQ for answers to frequently asked questions.
Check Out the Example Applications!
The example applications are included in the Jersey bundle (see Installing Jersey for more info on downloading Jersey). The following examples are included in the Jersey bundle, and are discussed in a bit more detail in the Jersey Tutorial chapter, Using Jersey: Examples:
- HelloWorld: This is how everybody starts!
- GlassFishDB: Demonstrates how to use JPA to expose the contents of a database table as a RESTful resource.
- JsonFromJaxb: Demonstrates how to use JSON representation of JAXB-based resources.
- EntityProvider: Demonstrates pluggable entity providers.
- Bookmark: Demonstrates how to use JPA in the backend.
- Bookstore: Demonstrates how to use polymorphism with resources and views that are JSP pages.
- OptimisticConcurrency: Demonstrates the application of optimistic concurrency to a web resource.
- SimpleAtomServer:Simple Atom server that partially conforms to the Atom Publishing Format and Protocol.
- SimpleConsole: Demonstrates how to use the Lightweight HTTP Server included in Sun's Java SE 6.0 release.
- SimpleJAXWSEndpoint: Demonstrates how to use a JAX-WS Endpoint.
- SimpleServlet: Demonstrates how to use a Servlet container.
- StorageService: Demonstrates a basic in-memory web storage service.
Here are a few other examples that are not included in the bundle. Please add any others to the list that you find useful.
- Jersey and WADL; http://wikis.sun.com/display/Jersey/WADL
- RESTful Web Services and Comet: http://developers.sun.com/appserver/reference/techart/cometslideshow.html
- Jersey with Maven: http://blogs.sun.com/japod/entry/building_simple_jersey_web_app
General Information
- Schedule - Planned features and Jersey release dates
For Jersey Users
- External Links - Links to articles and blogs containing samples and hints for using Jersey
- WADL - What does jersey provide related to WADL and how this can be used
For Jersey Developers
- Contributing areas - Ideas for how you can contribute

Comments (4)
Oct 16, 2007
t.wiik says:
An example page with links would be nice, e.g.:An example page with links would be nice, e.g.:
http://blogs.sun.com/arungupta/entry/learn_to_rest_using_jersey
Jun 13
sandoz says:
My apologies for the very late reply. I have added a link to the getting started...My apologies for the very late reply. I have added a link to the getting started page on the Jersey java.net page.
Jun 10
kwilliaa says:
There should be a clearly visible list of base requirements either here or on a ...There should be a clearly visible list of base requirements either here or on a separate page (FAQ?)
ie. JavaSE6, Servlet 2.3 etc...
Jun 13
sandoz says:
I have added a "What are the dependencies to the FAQ"I have added a "What are the dependencies to the FAQ"