Ошибка появляется случайным образом во время вызовов API, и в журнале отображается следующее:
Код: Выделить всё
org.springframework.web.client.RestClientException: No suitable HttpMessageConverter found for response type [X] and content type [application/json]
Конфигурация RestTemplate:
У меня есть собственный bean-компонент RestTemplate, определенный в классе конфигурации, куда я явно добавляю MessageConverters, включая MappingJackson2HttpMessageConverter, для обработки ответов JSON.
Проблема возникает, несмотря на то, что RestTemplate< /code> настроен правильно с помощью конвертеров при запуске.
Замеченное поведение:
Когда я инициализирую RestTemplate в классе конфигурации, он показывает 7 конвертеров сообщений. Однако во время выполнения (при вызове API) я заметил, что RestTemplate имеет 16 MessageConverters, что позволяет предположить, что конвертеры добавляются где-то в течение жизненного цикла приложения. RestTemplate внедряется в службу с помощью @Autowired, и никакие @Qualifier или дополнительные bean-компоненты RestTemplate не используются.
Что я сделал Пробовал:
- Я исключил RestTemplateAutoConfiguration, чтобы избежать автоматической настройки RestTemplate, но проблема не устранена.
- Я проверил наличие нескольких bean-компонентов RestTemplate и убедился, что используется правильный экземпляр.
- Я добавил ведение журнала вокруг инициализации RestTemplate для отслеживания когда MessageConverters изменяются, но я не могу точно определить источник изменения.
- Локальные тесты с высоким параллелизмом не воспроизводят проблему, которая чаще всего возникает в производственных или промежуточных средах.
Сообщение об ошибке, которое я вижу в журналах:
Код: Выделить всё
org.springframework.web.client.RestClientException: No suitable HttpMessageConverter found for response type [X] and content type [application/json]
Код: Выделить всё
MappingJackson2HttpMessageConverter
Ключевые вопросы:
- < li>Что может быть причиной добавления дополнительных MessageConverter в RestTemplate после его инициализации?
- Может ли параллелизм или загрузка повлиять на поведение HttpMessageConverter и как мне лучше воспроизвести это локально?
- Есть ли способ повторно инициализировать компонент RestTemplate или динамически конвертеры в случае возникновения этой проблемы, поскольку проблема, похоже, исчезает после перезапустить приложение?
Подробнее здесь: https://stackoverflow.com/questions/790 ... n-spring-b