Heim  >  Artikel  >  Java  >  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)?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-30 10:28:26115Durchsuche

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

Spring JSON-Anfrage gibt 406 zurück (nicht akzeptabel)

Beim Versuch, eine JSON-Anfrage an einen Spring MVC-Controller zu senden, stoßen einige Benutzer auf eine 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, befolgen Sie diese Schritte:

  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:

    <code class="xml"><mvc:annotation-driven /></code>
  3. Entfernen Sie die unnötigen „headers=" Accept=/""-Direktive 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 .

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Senden einer JSON-Anfrage an meinen Spring MVC-Controller den Fehler 406 (nicht akzeptabel)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn