Chapter 7. Server Responses and Exception Handling
So far, the examples given in this book have been very clean and tidy. The JAX-RS resource methods we have written have looked like regular vanilla Java methods with JAX-RS annotations. We haven’t talked a lot about the default behavior of JAX-RS resource methods, particularly around HTTP response codes in success and failure scenarios. Also, in the real world, you can’t always have things so neat and clean. Many times you need to send specific response headers to deal with complex error conditions. This chapter first discusses the default response codes that vanilla JAX-RS resource methods give. It then walks you through writing complex responses using JAX-RS APIs. Finally, it goes over how exceptions can be handled within JAX-RS.
Default Response Codes
The default response codes that JAX-RS uses are pretty straightforward. There is pretty much a one-to-one relationship to the behavior described in the HTTP 1.1 Method Definition specification.[7].] Let’s examine what the response codes would be for both success and error conditions for the following JAX-RS resource class:
@Path("/customers")publicclassCustomerResource{@Path("{id}")@GET@Produces("application/xml")publicCustomergetCustomer(@PathParam("id")intid){...}@POST@Produces("application/xml")@Consumes("application/xml")publicCustomercreate(CustomernewCust){...}@PUT@Path("{id}")@Consumes("application/xml")publicvoidupdate(@PathParam("id")intid,Customer ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access