为了账号安全,请及时绑定邮箱和手机立即绑定

JAX-RS / Jersey如何自定义错误处理?

JAX-RS / Jersey如何自定义错误处理?

慕田峪7331174 2019-08-23 15:50:26
JAX-RS / Jersey如何自定义错误处理?我正在使用Jersey学习JAX-RS(又名JSR-311)。我已经成功创建了一个Root资源并正在使用参数:@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 Bad Request”)?记录错误怎么样?也许在自定义标题中添加问题描述(“错误日期格式”)以帮助排除故障?或者返回包含详细信息的完整错误响应以及5xx状态代码?
查看完整描述

3 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

我也喜欢StaxMan可能会将QueryParam实现为String,然后根据需要处理转换,重新抛出。

如果特定于语言环境的行为是期望和预期的行为,您将使用以下命令返回400 BAD REQUEST错误:

throw new WebApplicationException(Response.Status.BAD_REQUEST);

有关更多选项,请参阅JavaDoc for javax.ws.rs.core.Response.Status


查看完整回答
反对 回复 2019-08-23
  • 3 回答
  • 0 关注
  • 547 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号