POST zu Jersey REST-Dienst wird fehlerhaft 415 Nicht unterstützter Medientyp

7

Ich verwende eine JAX-RS-Webanwendung mit Jersey und Tomcat. Get-Anfragen sind in Ordnung, aber wenn ich versuche, JSON zu posten, bekomme ich einen HTTP-Status 415 - Nicht unterstützter Medientyp.

Hier ist meine einfache HelloWorld.java:

%Vor%

Hier ist die Anfrage, die ich in Postman versuche (mit 'application / json' Header):

Hier ist das Projektlayout mit Bibliotheken:

Ich benutze:

  • Java 7 x64
  • Jersey 2.17
  • Tomcat 7.0.62 x64

Danke!

    
Rob Crocombe 24.05.2015, 12:59
quelle

4 Antworten

30

Die Jersey-Distribution kommt nicht mit JSON / POJO-Unterstützung aus der Box. Sie müssen die Abhängigkeiten / Jars hinzufügen.

Fügen Sie all diese

hinzu

Mit Maven, unten wird alles oben in

ziehen %Vor%

Für zukünftige Leser, die Jersey 2.17 nicht verwenden (und Jars direkt anstelle von Maven verwenden), können Sie hier , um die von Ihnen verwendete Jersey-Version zu finden und zu sehen, welche transitiven Abhängigkeitsversionen Sie benötigen. Die aktuelle Version dieser Jersey Abhängigkeit verwendet Jackson 2.3.2. Das ist die Hauptsache, auf die Sie achten müssen.

    
Paul Samsotha 24.05.2015, 13:27
quelle
1

Überprüfen Sie Ihren REST-Aufruf contentType. Es sollte sein contentType: 'application / json', wenn Sie Json-Daten an die POJO-Klasse übergeben.

    
Suresh Patil 10.07.2017 10:08
quelle
0

Ich denke, dass die Post-Anfrage korrekt funktioniert, aber Ihr Browser / Postbote die vom Dienst zurückgegebene Antwort nicht analysieren kann. Es gibt Text zurück und Postman wartet json. Fügen Sie Ihrem Webservice die Annotation Produce hinzu und legen Sie sie ebenfalls auf json fest. Ich empfehle Ihnen auch, sich mit Fiddler2 in Verbindung zu setzen, um genaue Informationen über die Leitung zu erhalten.

    
Deniz 24.05.2015 13:16
quelle
0

Durch eine Menge der Antworten sowohl auf dieser Seite als auch anderen gegangen, aber ohne Erfolg. Das hat wirklich für mich funktioniert:

METHODE 1: Anstatt JSONObject als Parameter an die Ressourcenmethode zu übergeben, übergeben Sie lieber String . Nimm das String und erstelle ein JSONObject damit  und dann können Sie es in Ihrem Code verwenden. Wie so,

%Vor%

METHODE 2:

Hinzufügen dieser Abhängigkeit ab September 2017 :

%Vor%

Referenz von hier

    
Young Millie 15.09.2017 20:57
quelle

Tags und Links