我们有几个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数据时。