Exemple XML avec Jersey JAXB

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

XML et le maillot

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]