Я пытаюсь реализовать RFC 7807 в своем проекте Spring Boot, используя zalando problem-spring-web https://github.com/zalando/problem-spring-web
Я выполнил настройку в соответствии с этим руководством https://github.com/zalando/problem-spring-web/tree/master/problem-spring-web
Когда генерируется исключение, экземпляр Problem
генерируется, но его сериализованная форма JSON не соответствует ожидаемой, особенно в том случае, когда трассировка стека включается, а это не следует.
После некоторой отладки кажется, что ProblemModule
не зарегистрирован в ObjectMapper
, который используется для сериализации проблемы (его метод setupModule
никогда не вызывается). У меня сложилось впечатление, что объявления бина типа Module
было достаточно, чтобы Spring взял его и зарегистрировал в ObjectMapper
, но здесь этого не происходит.
Док говорит
Если вы хотите включить трассировку стека, настройте
ПроблемаМодуль выглядит следующим образом:
ObjectMapper mapper = new ObjectMapper()
.registerModule(new ProblemModule().withStackTraces());
, что, по-видимому, означает, что вам нужно создать собственный экземпляр ObjectMapper
, но как убедиться, что он используется библиотекой при десериализации проблемы?