如何手动处理JsonMappingException而不是让容器处理它

时间:2018-09-17 19:11:56

标签: json spring-boot exception-handling jackson jersey

我们有几个Spring Boot应用程序,它们提供需要JSON消息的REST服务。

我们在Jersey配置中同时注册了“ JsonParseExceptionMapper”和“ JsonMappingExceptionMapper”。我在这两个“ toResponse”方法中都设置了断点。

然后我向服务发送了一个请求,请求的属性包含一个我知道会导致构造函数查找失败的值。它没有达到任何这些断点。我得到的响应看起来像这样:

{
    "timestamp": "2018-09-17T18:55:04.882+0000",
    "status": 500,
    "error": "Internal Server Error",
    "exception": "org.glassfish.jersey.server.ContainerException",
    "message": "com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of ...",
    "path": "..."
}

然后,我尝试在JsonMappingException的静态方法中设置断点,然后重新运行测试。它碰到了那个断点,但是我看不到任何格式化我所看到的响应的mapper类。

我想做的是处理类似自定义映射器中的错误,也许是为了限制返回的信息。我该怎么办?

更新

除了要添加“ jersey”标签之外,我实际上没有太多更新。我必须找到一种方法来防止容器发出此错误。最大的问题是响应包含原始请求。这看似无关紧要,但我们的CSO认为这是一个安全问题,尤其是如果请求中存在CPI数据时。

0 个答案:

没有答案