Периодическая ошибка «Нет подходящего HttpMessageConverter» во время вызовов API в Spring Boot – как устранить неполадкуJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Периодическая ошибка «Нет подходящего HttpMessageConverter» во время вызовов API в Spring Boot – как устранить неполадку

Сообщение Anonymous »

Подробности о проблеме:
Ошибка появляется случайным образом во время вызовов API, и в журнале отображается следующее:

Код: Выделить всё

org.springframework.web.client.RestClientException: No suitable HttpMessageConverter found for response type [X] and content type [application/json]
После перезапуска приложения проблема обычно не возникает до следующего выпуска или повторного развертывания. Та же проблема не возникает в локальной среде, когда я пытаюсь смоделировать нагрузку (я использовал инструменты для имитации высокого параллелизма с 10 000 запросами).
Конфигурация 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]
HttpMessageConverter для application/json должен присутствовать (

Код: Выделить всё

MappingJackson2HttpMessageConverter
), но в какой-то момент во время выполнения он теряется или изменяется.
Ключевые вопросы:
  • < li>Что может быть причиной добавления дополнительных MessageConverter в RestTemplate после его инициализации?
  • Может ли параллелизм или загрузка повлиять на поведение HttpMessageConverter и как мне лучше воспроизвести это локально?
  • Есть ли способ повторно инициализировать компонент RestTemplate или динамически конвертеры в случае возникновения этой проблемы, поскольку проблема, похоже, исчезает после перезапустить приложение?
Будем очень признательны за любые рекомендации по устранению этой проблемы или предложения по потенциальной основной причине!

Подробнее здесь: https://stackoverflow.com/questions/790 ... n-spring-b
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»