定义用于资源异常和错误的异常映射器
Java™ API for RESTful Web Services (JAX-RS) 应用程序可以产生异常和错误。 缺省行为是使用应用程序容器的异常处理功能,例如 JavaServer Pages (JSP) 错误页。 但是,您可以定制错误处理并在发生异常或错误时发送回特定的响应。
关于此任务
JAX-RS 资源方法与任何 Java 方法相似,可以抛出经过校验的异常和未经校验的异常。缺省情况下,未校验的运行时异常或错误会在容器中再次发生。对于运行在 Web 容器中的资源,已校验的异常包装在 ServletException 中。因此,开发人员可以使用错误处理功能(例如 JSP 错误页)来处理从 JAX-RS 应用程序抛出的异常。
JAX-RS 引入了异常 javax.ws.rs.WebApplicationException。 开发人员可以在创建 WebApplicationException 时指定特定的错误类名称或 javax.ws.rs.core.Response 对象。当抛出 WebApplicationException 时,包括在异常中的信息(采用状态类名或响应对象形式)用于将响应序列化。
如果在代码中不能抛出异常 WebApplicationException 并且不能使用 Web 容器中错误处理功能,但您要使用定制错误响应,那么您可以创建定制的 JAX-RS javax.ws.rs.ext.ExceptionMapper 类以将异常映射至 HTTP 错误响应。
以下过程说明了如何编写定制 ExceptionMapper 类。
过程
结果
您已编写了定制的 ExceptionMapper 以处理 JAX-RS Web 应用程序中的异常。