Java Reference
In-Depth Information
Chapter 7. Server Responses and
Exception Handling
So far, the examples given in this topic have been very clean and tidy. The JAX-RS resource
methods we have written have looked like regular vanilla Java methods with JAX-RS an-
notations. 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 de-
fault 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" )
public
public class
class CustomerResource
CustomerResource {
@Path ( "{id}" )
@GET
@Produces ( "application/xml" )
public
public Customer getCustomer ( @PathParam ( "id" ) int
int id ) {...}
@POST
@Produces ( "application/xml" )
@Consumes ( "application/xml" )
public
public Customer create ( Customer newCust ) {...}
@PUT
@Path ( "{id}" )
@Consumes ( "application/xml" )
public
public void
void update ( @PathParam ( "id" ) int
int id , Customer cust ) {...}
@Path ( "{id}" )
@DELETE
 
Search WWH ::




Custom Search