У нас есть несколько приложений Spring Boot, которые предоставляют службы REST, ожидающие сообщения JSON.
В нашей конфигурации на Джерси зарегистрированы как «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.