6

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

4

1 回答 1

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();
    }

}
于 2013-06-15T01:16:39.547 回答