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]