Ce tutoriel vous montre comment utiliser JAXB pour convertir un objet en XML dans Jersey et le renvoyer à l’utilisateur.
1. Dépendance
Pour intégrer JAXB à Jersey, aucune dépendance supplémentaire n’est requise. Il suffit d’inclure « jersey-server.jar ».
2. Annotation JAXB
Annoter l’objet avec l’annotation JAXB, pour la conversion ultérieure.
import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "customer") public class Customer { String name; int pin; @XmlElement public String getName() { return name; } public void setName(String name) { this.name = name; } @XmlAttribute public int getPin() { return pin; } public void setPin(int pin) { this.pin = pin; } }
L’objet ci-dessus sera converti au format XML suivant.
<customer pin="value"> <name>value</name> </customer>
3. Jersey et XML
Pour renvoyer un fichier XML, annotez la méthode avec @Produces (MediaType.APPLICATION__XML) `. Jersey convertira automatiquement l’objet annoté JAXB en fichier XML.
import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import com.mkyong.Customer; @Path("/xml/customer") public class XMLService { @GET @Path("/{pin}") @Produces(MediaType.APPLICATION__XML) public Customer getCustomerInXML(@PathParam("pin") int pin) { Customer customer = new Customer(); customer.setName("mkyong"); customer.setPin(pin); return customer; } }
4. Démo
Lorsque le modèle d’URI “ xml/customer/\ {param value} ” est demandé, un fichier XML formaté est renvoyé.
URL: http://localhost : 8080/RESTfulExample/rest/xml/customer/999
Télécharger le code source
Téléchargez-le - lien://wp-content/uploads/2011/07/XML-Support-Jersey-Example.zip[XML-Support-Jersey-Example.zip](6 Ko)
Références
à Jersey]
lien://tag/intégration/[intégration]lien://tag/jaxb/[jaxb]lien://tag/jersey/[jersey]lien://tag/xml/[xml]