„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum erhalte ich beim Senden einer JSON-Anfrage an meinen Spring MVC-Controller den Fehler 406 (nicht akzeptabel)?

Warum erhalte ich beim Senden einer JSON-Anfrage an meinen Spring MVC-Controller den Fehler 406 (nicht akzeptabel)?

Veröffentlicht am 07.11.2024
Durchsuche:338

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

Spring JSON Request Returning 406 (Not Acceptable)

Beim Versuch, eine JSON-Anfrage an einen Spring MVC-Controller zu senden, stoßen einige Benutzer auf Folgendes: Fehler „406 nicht akzeptabel“. Dieses Problem ist auf eine Diskrepanz zwischen dem angeforderten Inhaltstyp („application/json“) und der Antwortfähigkeit des Controllers zurückzuführen.

In Spring MVC wird die Controller-Methode mit „@ResponseBody“ annotiert, um anzuzeigen, dass die Der Rückgabewert sollte als JSON in den HTTP-Antworttext geschrieben werden. Wenn jedoch der richtige HTTPMessageConverter nicht im Anwendungskontext registriert ist, kann Spring den Rückgabewert nicht in das angeforderte Format konvertieren.

Eine häufige Ursache für diesen Fehler ist das Fehlen der Jackson-Bibliotheken in der Anwendung Klassenpfad. Die Jackson-Bibliotheken stellen den HTTPMessageConverter bereit, der für die Konvertierung von Java-Objekten in JSON und umgekehrt verantwortlich ist.

Um das Problem zu beheben, führen Sie die folgenden Schritte aus:

  1. Stellen Sie sicher, dass die folgenden Jackson-Bibliotheken sind im Anwendungsklassenpfad enthalten:

    • jackson-core-asl.jar
    • jackson-mapper-asl.jar
  2. Wenn Sie Spring 3.0 oder höher verwenden, fügen Sie die folgende Zeile zur Konfigurationsdatei spring-servlet.xml hinzu, um die annotationsgesteuerte MVC-Konfiguration zu aktivieren:

  3. Entfernen Sie die unnötige Direktive „headers=\“Accept=/\“ aus der Annotation der Controller-Methode. Diese Anweisung zwingt Spring dazu, jeden Header zu akzeptieren, und kann zu Kompatibilitätsproblemen führen.

Durch die Implementierung dieser Schritte wird der HTTPMessageConverter registriert und Spring kann den Rückgabewert des Controllers wie erwartet in JSON konvertieren .

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3