2016-07-02 7 views
0
@GET @Path("/ids/{printerid}") 
@Produces({"application/json", "application/xml"}) 
public Printer getPrinter(@PathParam("printerid") String printerId) { ... } 

ist ein Stück eines Codebeispiel hier gefunden: https://jersey.java.net/documentation/latest/jaxrs-resources.html#d0e2089Rückkehr XML/JSON in Jersey

Was ich verstehe, ist:

  • das Verfahren getPrinter aufgerufen, wenn der HTTP method GET auf die aufgerufen wird, /ids/{printerid} Pfad
  • das Verfahren entweder ein Producesjson oder xml Ergebnis
  • die Methode ein Object des Typ Drucker, der in der Was ich nicht verstehe, URI

bereitgestellt ID identifiziert ist, wie der zurückgegebene Drucker als xml/json Dokument dargestellt wird. Wir geben einen Drucker in dieser Methode zurück, wie bekommen wir dann eine xml/json Datei?

Antwort

2

Dies ist die ganze Idee von Jersy Layer/Spring Controller, sie kapseln es und konvertieren die Klasse in JSON. Sie können das gleiche Ergebnis mit Gson haben

Gson gson = new Gson(); 
String json = gson.toJson(printerObject); 
System.out.println(json); 

Nicht sicher, ob Jersy Gson verwendet, aber die Logik wird wahrscheinlich das gleiche

+0

Ok: https://jersey.java.net/documentation/latest/media.html

Sie können zu XML und JSON-Unterstützung in Jersey hier bezogen viele Artikel. So wie ich es verstehe, muss ich nichts für die Konvertierung selbst tun. Nun nehme ich an, ich rufe eine Methode auf, die XML erzeugt, wie zeige ich sie in meinem Client (Browser) an. Wenn ich die Methode aufrufen, wird nichts angezeigt – user6454491

+1

Überprüfen Sie in der Web-Browser-Netzwerkkonsole, überprüfen Sie den Antworttext oder verwenden Sie Fiddler, um zu sehen, welche Daten Sie vom Server erhalten und stellen Sie sicher, dass Sie es richtig analysieren – USer22999299

+1

danke. Es scheint, dass ein interner Serverfehler vorliegt. Zumindest weiß ich vage, wo ich jetzt hinschauen sollte – user6454491

2

Wenn Sie für einen Dienst von clien Seite fordern Sie immer Inhalt genannten Art gibt Das gibt die in xml oder json akzeptierte Antwort an.

$http({ 
     method: "GET", 
     contentType: "application/json", 
     url: baseUrl + '/xyz' + id 
     }).success(function (response) { 
     console.log(response); 
     // you can also use 
     console.log(JSON.stringify(response); 
     }).error(function (response) { 
     console.log(response); 
     }); 
0

Basierend auf "Content-Typ" in der Anfrage, Trikot wird die Darstellung entscheiden.

Es gibt viele Frameworks, die Unterstützung für XML/JSON-Darstellung für Jersey bieten. Jackson und JAXB sind sehr beliebte und effiziente Frameworks für die JSON- und XML-Verarbeitung in Jersey.

Werfen Sie einen Blick auf offizielle Jersey Dokumentation für verschiedene Frameworks:
http://www.mkyong.com/tutorials/jax-rs-tutorials/