java - Jersey 2.x ExceptionMapper 父映射

标签 java jackson jax-rs jersey-2.0 jackson2

编辑:这是 ackson-jaxrs-base 早期版本中的一个问题,已在 jackson-jaxrs-base-2.8 中解决。 https://github.com/FasterXML/jackson-jaxrs-providers/issues/22

我正在努力解决这个问题,但映射器除外。我想将 com.fasterxml.jackson.core.JsonProcessingException 的所有子级映射到 sinlge ExceptionMapper 中。

这是我的代码:

@Provider
public class JsonProcessingExceptionMapper implements ExceptionMapper<JsonProcessingException> {

    @Override
    public Response toResponse(JsonProcessingExceptionexception) {
        return Response.status(Response.Status.BAD_REQUEST)
                .entity("json parsing error!")).build();
    }

使用以下代码可以正常工作:

@Provider
public class JsonMappingExceptionMapper implements ExceptionMapper<JsonMappingException> {

    @Override
    public Response toResponse(JsonMappingException exception) {
        return Response.status(Response.Status.BAD_REQUEST)
                .entity("parsing error!").build();
    }
}

编辑:JsonProcessingException 是 JsonMappingException 的父级 我到底做错了什么?

最佳答案

类 com.fasterxml.jackson.jaxrs.base.JsonMappingExceptionMapper 存在于 lib 中,并且它实现了 ExceptionMapper。

因此,在第一种情况下,此映射器比您的映射器更合适,因为它处理 JsonMappingException,但您的映射器处理常见的 JsonProcessingException。

在第二种情况下,你的映射器与此映射器具有相同的级别,因此可以应用它。

关于java - Jersey 2.x ExceptionMapper 父映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39147143/

相关文章:

java - JAX-RS POST bean 属性的默认值

java - 如何修复 JAX-RS 中的 javax.servlet.ServletException : java. lang.NullPointerException?

java - @在 REST Web 服务中使用 JSON,每次使用不同数量的 JSON 值

java - Facebook 应用程序的测试帐户(例如 JUnit 测试手册)

java - 根据模型状态动态选择下一个 View 状态?

java - 如何使用 Jackson ObjectMapper 检测尾随垃圾

json - 当我使用 Jackson ObjectMapper() 类的 writeValueAsString() 方法时,如何解决这个无限递归(StackoverflowError)?

java - 实现 AsyncTask 的正确方法是什么?静态或非静态嵌套类?

java - 有没有办法在堆栈中搜索带有 "any"参数的内容?

java - org.codehaus.jackson.map.exc.UnrecognizedPropertyException : Unrecognized field "id" (Class Criteria), 未标记为可忽略