Definindo Mapeadores de Exceção para Exceções e Erros de Recurso
Os aplicativos Java™ API for RESTful Web Services (JAX-RS) podem produzir exceções e erros. O comportamento padrão é usar a funcionalidade de manipulação de exceção do contêiner de aplicativo, como páginas de erro JavaServer Pages (JSP). Entretanto, é possível customizar a manipulação de erro e enviar respostas específicas de volta quando uma exceção ou erro ocorrer.
Sobre Esta Tarefa
Os métodos de recursos JAX-RS, como qualquer método Java, pode emitir exceções verificadas e não verificadas. Por padrão, uma exceção de tempo de execução ou erro não verificado ocorre no contêiner novamente. Uma exceção verificada é agrupada em uma ServletException para os recursos em execução no contêiner da Web. Portanto, um desenvolvedor pode usar os recursos de manipulação de erro, como páginas de erro JSP, para manipular exceções emitidas a partir de um aplicativo JAX-RS.
O JAX-RS introduziu uma exceção, javax.ws.rs.WebApplicationException. Um desenvolvedor pode especificar um nome de classe de erro específico ou um objeto javax.ws.rs.core.Response quando criar uma WebApplicationException. Quando a WebApplicationException é emitida, as informações incluídas na exceção por meio de um nome de classe de status ou de objeto de Resposta são usadas para serializar uma resposta.
Se não for possível emitir a exceção WebApplicationException no seu código e os recursos de manipulação de erro não puderem ser usados no contêiner da Web, mas desejar usar uma resposta de erro customizada, será possível criar uma classe javax.ws.rs.ext.ExceptionMapper JAX-RS para mapear as exceções para as respostas de erro HTTP.
O seguinte procedimento ilustra como gravar uma classe ExceptionMapper customizada.
Procedimento
Resultados
Uma ExceptionMapper customizada foi gravada para manipular exceções no seu aplicativo da Web JAX-RS.