Spring的哪一部分负责创建默认的JSON样式异常消息?

时间:2019-03-30 18:35:16

标签: java spring spring-boot error-handling

我正在使用Spring 5 / Spring boot 2.1 REST服务应用程序。当我们的应用程序引发异常时,客户端默认收到的响应就是这个漂亮的JSON字符串:

{
  "timestamp": "2019-03-30T18:18:27Z",
  "status": 500,
  "error": "Internal Server Error",
  "message": "No message available",
  "path": "/api/test/"
}

我想知道Spring的哪一部分(或底层的Tomcat)负责创建此json消息,它何时发生?我已经检查了不同的HandlerExceptionResolvers(如here所述),但没有看到它(源代码为here)。

我还在应用程序中实现了一个Web筛选器,并且在读取响应主体时(使用ConcentCachedResponseWrapper来防止流的典型问题仅被decribed here读取一次),响应主体始终为空。

这让我觉得这个json是在异常处理程序处理完之后创建的,并在响应上设置的,并且在过滤器运行之后(或者至少是我自己的过滤器,我没有为其指定特殊顺序)

0 个答案:

没有答案