JAX-RS异常处理

时间:2013-06-14 13:16:54

标签: rest cxf jax-rs

我对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。虽然我可能会错过搜索结果中的内容。 处理这种情况的正确方法是什么? 请建议一些事情。我坚持这个问题......

1 个答案:

答案 0 :(得分:5)

JAX-RS ExceptionMapper应该完成这项工作。只需在代码中添加如下所示的类,如果您拥有正确的异常类型,那么您应该获得定制处理的钩子。

@Provider
public class MyExceptionMapper implements ExceptionMapper<MyException> {

    @Override
    public Response toResponse(MyException ex) {
        return Response.status(Response.Status.BAD_REQUEST).build();
    }

}