sebastiandaschner blog
Using JAX-RS exceptions for status codes
monday, december 04, 2017One way to send specific HTTP (error) status codes from a JAX-RS resource is to use the javax.ws.rs.core.Response
class with its Builder Pattern-like API.
If you want to specify the return type according to the response body, you can still do so and send a different status on errors by throwing a WebApplicationException
.
@Path("test")
public class TestResource {
@GET
public String hello() {
if (new Random().nextBoolean())
throw new WebApplicationException(Response.Status.CONFLICT);
return "Hello World, " + Instant.now();
}
}
The constructors of this special type of exception accepts Response
s, Response.Status
es or int
types.
The JAX-RS runtime will send the corresponding HTTP statuses and header fields, respectively.
There are also pre-defined subtypes of WebApplicationException
for common errors like NotFoundException
or BadRequestException
.
This post was reposted from my newsletter issue 006
Found the post useful? Subscribe to my newsletter for more free content, tips and tricks on IT & Java: