Ich versuche, einen REST-Service mit Spring MVC zu erstellen, und es funktioniert, wenn ich eine einfache Zeichenfolge zurückgebe. Meine Anforderung besteht darin, eine JSON-Zeichenfolge des Java-Objekts zurückzugeben. Ich weiß nicht, wie ich dies durch implizite Konvertierung erreichen kann.
Hier ist mein Code:
StudentService.java
%Vor%Student.java
%Vor% Hier Ссылка gibt die URL "Test REST Service !!!" Aber Ссылка URL wirft HTTP-Statuscode 406 mit Fehlermeldung: Die Ressource, die von dieser Anfrage identifiziert wird, kann nur Antworten mit Eigenschaften erzeugen, die nicht akzeptabel sind, entsprechend den "accept" Kopfzeilen der Anfrage.
Endlich habe ich eine Lösung mit der Jackson-Bibliothek zusammen mit Spring MVC bekommen. Ich habe diese Lösung aus einem Beispiel von Journal Dev ( Ссылка )
Also, die Codeänderungen, die ich gemacht habe, sind:
Ich habe an meinem REST-Service-Controller keine Änderungen vorgenommen. Standardmäßig wird es in JSON konvertiert.
Sie können jederzeit @Produces("application/json")
über Ihrer Webmethode hinzufügen oder produces="application/json"
angeben, um json zurückzugeben. Dann können Sie, zusätzlich zur Klasse Student
, @XmlRootElement
von javax.xml.bind.annotation
package hinzufügen.
Bitte beachten Sie, dass es möglicherweise keine gute Idee ist, Modellklassen direkt zurückzugeben. Nur ein Vorschlag.
HTH.
Die Json-Konvertierung sollte out-of-the-box funktionieren. Damit dies geschieht, müssen Sie einige einfache Konfigurationen hinzufügen:
Fügen Sie zuerst einen contentNegotiationManager in Ihre Spring-Konfigurationsdatei ein. Es ist verantwortlich für die Aushandlung des Antworttyps:
Fügen Sie dann Jackson2 jars (jackson-databind und jackson-core) im Klassenpfad des Dienstes hinzu. Jackson ist verantwortlich für die Datenserialisierung zu JSON. Spring erkennt diese und initialisiert den MappingJackson2HttpMessageConverter automatisch für Sie. Wenn ich nur diese Konfiguration habe, kann ich automatisch zu JSON konvertieren. Die beschriebene Konfiguration hat den zusätzlichen Vorteil, dass Sie die Möglichkeit haben, nach XML zu serialisieren, wenn Sie den accept: application / xml Header setzen.
Tags und Links java spring json rest spring-mvc