JAX-RS / 泽西岛如何定制错误处理?
我正在使用泽西岛学习JAX-RS(又名JSR-311)。我已经成功创建了一个根资源,并且正在使用参数:
@Path("/hello")
public class HelloWorldResource {
@GET
@Produces("text/html")
public String get(
@QueryParam("name") String name,
@QueryParam("birthDate") Date birthDate) {
// Return a greeting with the name and age
}
}
这非常有效,并且可以处理当前区域设置中由 Date(String) 构造函数理解的任何格式(如 YYYY/mm/dd 和 mm/dd/YYYY)。但是,如果我提供的值无效或不被理解,我得到404响应。
例如:
GET /hello?name=Mark&birthDate=X
404 Not Found
如何自定义此行为?也许是不同的响应代码(可能是“400错误请求”)?如何记录错误?也许在自定义标头中添加问题描述(“错误日期格式”)以帮助进行故障排除?或者返回包含详细信息的整个错误响应以及 5xx 状态代码?