«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему я получаю ошибку 406 (недопустимо) при отправке запроса JSON на мой контроллер Spring MVC?

Почему я получаю ошибку 406 (недопустимо) при отправке запроса JSON на мой контроллер Spring MVC?

Опубликовано 7 ноября 2024 г.
Просматривать:676

Why am I getting a 406 (Not Acceptable) Error When Sending a JSON Request to My Spring MVC Controller?

Запрос Spring JSON возвращает код 406 (недопустимо)

При попытке отправить запрос JSON на контроллер Spring MVC некоторые пользователи сталкиваются с ошибкой Ошибка «406 недопустимо». Эта проблема возникает из-за несоответствия между запрошенным типом контента («application/json») и способностью ответа контроллера.

В Spring MVC метод контроллера помечен аннотацией «@ResponseBody», чтобы указать, что Возвращаемое значение должно быть записано в тело ответа HTTP в формате JSON. Однако, если правильный HTTPMessageConverter не зарегистрирован в контексте приложения, Spring не сможет преобразовать возвращаемое значение в запрошенный формат.

Распространенной причиной этой ошибки является отсутствие библиотек Джексона в приложении. путь к классам. Библиотеки Jackson предоставляют HTTPMessageConverter, отвечающий за преобразование объектов Java в JSON и наоборот.

Чтобы решить проблему, выполните следующие действия:

  1. Убедитесь, что следующие библиотеки Jackson включены в путь к классам приложения:

    • jackson-core-asl.jar
    • jackson-mapper-asl.jar
  2. Если вы используете Spring 3.0 или более позднюю версию, добавьте следующую строку в файл конфигурации Spring-servlet.xml, чтобы включить конфигурацию MVC на основе аннотаций:

  3. Удалите ненужную директиву "headers=\"Accept=/\"" из аннотации метода контроллера. Эта директива заставляет Spring принимать любой заголовок и может привести к проблемам совместимости.

При реализации этих шагов HTTPMessageConverter будет зарегистрирован, и Spring сможет преобразовать возвращаемое значение контроллера в JSON, как и ожидалось. .

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3