我对Java中的REST服务比较陌生.我创建了一个,除错误处理外,一切正常.如果我在其中发出错误形成JSON的请求,Jackson JSON处理器抛出一个我无法捕获的异常,我在客户端得到错误500.例外情况如下:
javax.ws.rs.InternalServerErrorException: org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.HashSet out of VALUE_STRING token
我不知道如何处理我的代码之外引发的异常.Google建议使用Exception Mappers或Phase Inteceptors.虽然我可能会错过搜索结果中的内容.处理这种情况的正确方法是什么?请建议一些事情.我坚持这个问题......
JAX-RS ExceptionMapper应该可以完成这项工作.只需在代码中添加如下所示的类,如果您具有正确的异常类型,那么您应该获得自定义处理的钩子.
@Provider
public class MyExceptionMapper implements ExceptionMapper<MyException> {
@Override
public Response toResponse(MyException ex) {
return Response.status(Response.Status.BAD_REQUEST).build();
}
}
Run Code Online (Sandbox Code Playgroud)