"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que estou recebendo um erro 406 (não aceitável) ao enviar uma solicitação JSON para meu controlador Spring MVC?

Por que estou recebendo um erro 406 (não aceitável) ao enviar uma solicitação JSON para meu controlador Spring MVC?

Publicado em 2024-11-07
Navegar:644

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

Solicitação Spring JSON retornando 406 (não aceitável)

Ao tentar enviar uma solicitação JSON para um controlador Spring MVC, alguns usuários encontram um Erro "406 Não Aceitável". Esse problema decorre de uma incompatibilidade entre o tipo de conteúdo solicitado ("application/json") e a capacidade de resposta do controlador.

No Spring MVC, o método do controlador é anotado com "@ResponseBody" para indicar que o o valor de retorno deve ser gravado no corpo da resposta HTTP como JSON. No entanto, se o HTTPMessageConverter adequado não estiver registrado no contexto do aplicativo, o Spring não será capaz de converter o valor de retorno para o formato solicitado.

Uma causa comum desse erro é a ausência das bibliotecas Jackson no aplicativo caminho de classe. As bibliotecas Jackson fornecem o HTTPMessageConverter responsável por converter objetos Java em JSON e vice-versa.

Para resolver o problema, siga estas etapas:

  1. Certifique-se de que as seguintes bibliotecas Jackson estão incluídos no caminho de classe do aplicativo:

    • jackson-core-asl.jar
    • jackson-mapper-asl.jar
  2. Se você estiver usando Spring 3.0 ou posterior, adicione a seguinte linha ao arquivo de configuração spring-servlet.xml para ativar a configuração MVC orientada por anotação:

  3. Remova a diretiva "headers=\"Accept=/\"" desnecessária da anotação do método do controlador. Esta diretiva força o Spring a aceitar qualquer cabeçalho e pode levar a problemas de compatibilidade.

Ao implementar essas etapas, o HTTPMessageConverter será registrado e o Spring será capaz de converter o valor de retorno do controlador para JSON conforme esperado .

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3