JAX-RS Tutorial

jax-rs tutorials

Java API for RESTful Web Services (JAX-RS), is a set if APIs to developer REST service. JAX-RS is part of the Java EE6, and make developers to develop REST web application easily.

In this series of JAX-RS tutorials, we use both Jersey and RESTEasy, popular JAX-RS implementation.

Happy learning JAX-RS 🙂

Quick Start

Some quick start examples to use JAX-RS.

Basic Examples

Basic annotations and functions to develop REST service.

File Upload Examples

How to handle multipart data in JAX-RS.

Working with XML

XML support in JAX-RS.

Working with JSON

JSON support in JAX-RS.

RESTful Java clients

Create a RESTful Java client to perform “GET” and “POST” request to manipulate json data.

JAX-RS + Spring

Integrate JAX-RS with Spring framework.

Common Error Messages

Some common error messages in JAX-RS development.

References

  1. Jersey official website
  2. Jersey user guide
  3. RESTEasy official website
  4. RESTEasy user guide
  5. REST explanation in Wiki

56 comments on “JAX-RS Tutorial

  1. Hi Mkyong,
    From long days i am trying to find good material for webservice development and finally i found on https://mkyong.com.
    Thank you very much for your efforts.

    Thanks
    Rahul K

    Reply
  2. Hi Mkyong,
    Thanks for your wonderful tutorials but i want to know about REST Filter using ContainerRequestFilter(jersey 1.9).
    I have tried and googled it but didn’t able to find anything related to Jersey 1.9 , every1 is saying about jersey 2.X.
    Please can you provide this in your JAX RS tutorials or any other user knows about it please comment below.

    Reply
  3. Dear Mkyong
    thanks for all your useful tutorials.
    i’m java Developer from Tehran, Iran.
    it my pleasure to appreciate to your tutorial and it is really useful.
    Keep doing.
    Best Regards

    Reply
  4. Typo: “set if APIs” should be “set of APIs”

    Reply
  5. I need help with using Java project dependency to other project :

    I have a Project A and Project B .. Project B is calling Project A methods. While running on tomcat 8 . It does not return anything from Project A methods. I have added Project A to Java build path and deployment assembly of Project B .

    I am using Maven , Tomcat 8 , Eclipse Mars.

    Reply
    1. Is jar of ProjectA in webapps lib of ProjectB in Tomcat?

      Reply
      1. i did it using maven’s parent module feature .. thanks for replying 🙂

        Reply
  6. Very helpful site! In particular I’ve been looking at your JAX-RS tutorials. I was wondering if you have an example of the appropriate way to use the @Produces annotation with an array. For example, depending on one of the QueryParams I’d like to return either xml or pdf.

    Reply
    1. I realized I should be using the Accept header to determine which format is returned rather than a QueryParam.

      Reply
    2. you can use @Produces(MediaType.APPLICATION_OCTET_STREAM) and in return add header — header(“Content-Disposition”, “attachment; filename=” + “fileName.csv”)

      Reply
  7. Where can I get the REST certification study material?

    Reply
  8. s/w versions used: TOMCAT 8, postgres 9.4, netbeans 8
    @POST
    @Override
    @Consumes({“application/xml”, “application/json”})
    public void create(Cdr entity)
    {
    super.create(entity);
    }
    public void create(T entity)
    {
    getEntityManager().persist(entity);
    }

    Reply
  9. When we deploy a RESTful service prior to Servlet 3.0 container, we will configure the Servlet class in web.xml (<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>) to delegate the HTTP requests to the respective RESTful resource. But, in case of Servlet 3.0 container (web.xml is optional), how the request will be delegated to a RESTful resource. In this case we didn’t configure a Servlet class in web.xml.

    If there are multiple JAX-RS implementation related JARs are added to the application library, then how the container will identify which implementation related Servlet class will handle this request?

    Any suggestions are appreciated.

    Reply
  10. How can I convert SOAP web service to REST web service(JSON) format ?

    Reply
  11. Have 2 questions, 1. How to perform authentication and authorization for rest services..? 2. How to maintain user sessions with REST ..? Please suggest what can be done to achieve this in REST

    Reply
    1. you can use filters in web.xml for authentication purpose . use of session is not preferred with REST you can use tokens.

      Reply
  12. I have a quiestion… ¿is posible integtrate resteasy with stateless EJB’s, using @EJB Annotation?

    Reply
  13. if I can use hibernate in Resteasy, I want to use hibernate in my project

    Reply
  14. Hi MkYong,
    Thanks for your tutorials!! They are really informative. I couldn’t find any tutorial on Exception/error handling in REST as well as SOAP web service. It would be nice if you can share some example on this subject.

    Cheers,
    Neha

    Reply
  15. can you give the source code for Ejb + Jpa + Jsf + restful webservices.
    I want to Insert data into Deployement Server Database using Restful Client

    Reply
  16. Thanks for your tutorials.
    I have been following you for a very long time. It is always been very helpful and informative.

    Reply
  17. hi, i am a beginner i want to know the difference between web service and web application.. can u explain me in detail..

    Reply
  18. Thanks a lot for your valable service to the IT Community.Whenever i want to learn any new things, i used to visit your site..Thanks a lot..

    Reply
  19. These examples are simple,tells you how RESTful Web Service work on basics.

    Reply
  20. An invaluable resource, very easy to understand.My first step into jax-rs has been really because of this tutorials

    Reply
  21. Can you please provide an example where a xml payload is sent through REST POST method preferably using spring resttemplate

    Reply
  22. Hi Thanks for the above example , Could you please share the code for Displaying the JSON into JSP Page

    Reply
  23. Please explain about the flow of execution jax-rs jersey application

    Reply
  24. Thanks a lot for the tutorials. JAX-WS one was really helpful for me. Can you please publish something for Spring Web-Services?

    Thanks.
    -nilman

    Reply
  25. Can you post how to do integration testing of Restful services without hard-coding the base URL (can be different for each environment)
    DEV:8080/REST/TEST
    UAT:8080/REST/TEST

    Reply
  26. Need Help with @PUT and @DELETE type request and client for them..

    Reply
  27. Yong those are great tutorials… Thank You!!! Could you post a tutorial about using OAuth for authenticating RestFul Web Services ?? It would be highly appreciated.

    Keep the good work!!!

    Reply
    1. Eduardo was right, could you post a tutorial about authenticating client in RestFul Web Services ?? Thank you

      Reply
      1. I am also waiting for a web site or good code from yong about securing Restful web services… Please post me if you got any worthy resource..!

        Reply
          1. Did any one of you get solution to the same ?

            If, then please suggest.

            @Ajay @Mikhail @siregar @Eduardo

          2. please also let me know…. this solution is no where..

  28. Hi Yong,

    I am first timer for Web Services. Trying to implement RESTful web service using JAX-RS Jersey APIs. I need to design stateless as well as stateful APIs. I guess I have very good idea on designing stateless APIs but to implement stateful APIs I need to manage session and client state on server. I know REST does not recommend this but this is the application requirement. Any suggestions how to implement stateful APIs? Thanks in advance.

    –Milind

    Reply
  29. is there a tutorial about security in rest? I mean is like implementation of authentication to access resources.

    Thank you.,

    Reply
  30. Have you tutorial or example about restful in struts2?
    Could you share it?

    Reply
  31. Yong, could you please tell me, how can we handle/get form parameters in REST service when they are in quantity approx. 15 params?

    I am aware about @FormParam annotation, but if we cover all the 15 parameters, the method signature become quit long or we can say not readable.

    Is there any way ? so that we can directly populate the object based on said 15 form parameters.

    I heard about an annotation @Form objRef, but it is no longer exists.

    please provide your thoughts on this

    thanks,
    -Roop

    Reply

Leave a Comment

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