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
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