Viele mögen Jackson JSON-Prozessor und er wurde in RESTEasy unterstützt. In diesem Lernprogramm zeigen wir Ihnen, wie Sie ein Objekt in das JSON-Format konvertieren und an den Client zurückgeben.
1. RESTEasy Jackson
Um Jackson mit RESTEasy zu integrieren, müssen Sie nur " resteasy-jackson-provider.jar " angeben.
-
Hinweis ** + Wenn RESTEasy eine Json-Ausgabe zurücksendet, wird sie vom Jackson-Provider automatisch konvertiert. Sie müssen keine einzige Zeile codieren, um beide zu integrieren.
Datei: pom.xml
<repositories> <repository> <id>JBoss repository</id> <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url> </repository> </repositories> <dependencies> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxrs</artifactId> <version>2.2.1.GA</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jackson-provider</artifactId> <version>2.2.1.GA</version> </dependency> </dependencies>
2. Einfaches Objekt
Ein einfaches Objekt, konvertieren Sie es später in das JSON-Format.
package com.mkyong.rest; public class Product { String name; int qty; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getQty() { return qty; } public void setQty(int qty) { this.qty = qty; } }
-
JAX-RS
Annotieren Sie die Methode mit @Produces ("application/json") `. RESTEasy verwendet den Jackson-Provider, um die JSON-Konvertierung automatisch durchzuführen.
import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Response; @Path("/json/product") public class JSONService { @GET @Path("/get") @Produces("application/json") public Product getProductInJSON() { Product product = new Product(); product.setName("iPad 3"); product.setQty(999); return product; } @POST @Path("/post") @Consumes("application/json") public Response createProductInJSON(Product product) { String result = "Product created : " + product; return Response.status(201).entity(result).build(); } }
-
Deaktiviert das automatische Scannen mit RESTEasy. ** Sie müssen das automatische Scannen mit RESTEasy deaktivieren und Ihren REST-Service manuell registrieren. Andernfalls erhalten Sie folgenden Link://webservices/jax-rs/illegal in-a-singleton-in-public-org-codehaus-jackson-jaxrs-jacksonjsonprovider/[Fehler].
Ich hoffe, es wird in zukünftigen Versionen behoben.
Datei: web.xml
<!-- disabled auto scan <context-param> <param-name>resteasy.scan</param-name> <param-value>true</param-value> </context-param> --> <context-param> <param-name>resteasy.resources</param-name> <param-value>com.mkyong.rest.JSONService</param-value> </context-param>
4. Demo
Siehe GET- und POST-Methode.
-
1. GET-Methode Wenn das URI-Muster " /json/product/get ** " angefordert wird, wird die folgende JSON-Datei zurückgegeben.
{ "qty":999, "name":"iPad 3" }
-
2. POST-Methode + Sie können die Json-Formatzeichenfolge im URI-Muster „ /json/product/post ** “ „posten“. Die Konvertierung erfolgt automatisch in „Product“.
Quellcode herunterladen
Download es - JAX-RS-Download-JSON-Jackson-Example.zip (8 KB)
Referenzen
Unterstützung über Jackson]