Какая часть Spring отвечает за создание сообщений об исключениях в стиле JSON по умолчанию? - PullRequest
0 голосов
/ 30 марта 2019

Я использую приложение службы REST Spring 5 / Spring boot 2.1.Когда наше приложение выдает исключение, ответ, который клиент получает по умолчанию, представляет собой эту красивую строку JSON:

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

Мне было интересно, какая часть Spring (или базовый Tomcat) отвечает за создание этого сообщения jsonи когда это происходит?Я уже проверил разные HandlerExceptionResolvers (как описано здесь ) и не вижу его (исходный код одного из них здесь ).

Я также реализовал веб-фильтр в приложении и при считывании тела ответа (используя ConcentCachedResponseWrapper, чтобы предотвратить типичную проблему чтения потоков только один раз, когда здесь описывается ), тело ответавсегда пусто.

Так что мне кажется, что этот json создается и устанавливается в ответ ПОСЛЕ обработки обработчиков исключений и ПОСЛЕ того, как сработали фильтры (или, по крайней мере, мой собственный фильтр, которого я не делал)Не указывайте специальный заказ для).

...