Chapter 22. Examples for Chapter 7
In Chapter 7, you learned how to create complex responses using the Response
and ResponseBuilder
classes. You also learned how to map thrown exceptions to a Response
using a javax.ws.rs.ext.ExceptionMapper
. Since most of our examples use a Response
object in one way or another, this chapter focuses only on writing an ExceptionMapper
.
Example ex07_1: ExceptionMapper
This example is a slight modification from ex06_1 to show you how you can use ExceptionMappers
. Letâs take a look at the CustomerResource
class to see what is different:
src/main/java/com/restfully/shop/services/CustomerResource.java
@Path
(
"/customers"
)
public
class
CustomerResource
{
.
.
.
@GET
@Path
(
"{id}"
)
@Produces
(
"application/xml"
)
public
Customer
getCustomer
(
@PathParam
(
"id"
)
int
id
)
{
Customer
customer
=
customerDB
.
get
(
id
)
;
if
(
customer
=
=
null
)
{
throw
new
CustomerNotFoundException
(
"Could not find customer "
+
id
)
;
}
return
customer
;
}
@PUT
@Path
(
"{id}"
)
@Consumes
(
"application/xml"
)
public
void
updateCustomer
(
@PathParam
(
"id"
)
int
id
,
Customer
update
)
{
Customer
current
=
customerDB
.
get
(
id
)
;
if
(
current
=
=
null
)
throw
new
CustomerNotFoundException
(
"Could not find customer "
+
id
)
;
current
.
setFirstName
(
update
.
getFirstName
(
)
)
;
current
.
setLastName
(
update
.
getLastName
(
)
)
;
current
.
setStreet
(
update
.
getStreet
(
)
)
;
current
.
setState
(
update
.
getState
(
)
)
;
current
.
setZip
(
update
.
getZip
(
)
)
;
current
.
setCountry
(
update
.
getCountry
(
)
)
;
}
}
In ex06_1, our getCustomer()
Get RESTful Java with JAX-RS 2.0, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.