Exemple XML avec RESTEasy JAXB

RESTEasy, est nécessaire pour que JAXB prenne en charge le fichier XML. Dans ce didacticiel, nous vous montrons comment créer un objet «utilisateur», le convertir en fichier XML et le renvoyer au client.

1. RESTEasy JAXB

Pour utiliser JAXB dans RESTEasy, vous devez inclure la dépendance « resteasy-jaxb-provider.jar ».

Fichier: 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-jaxb-provider</artifactId>
        <version>2.2.0.GA</version>
    </dependency>

  </dependencies>

2. Fournisseur XML JAXB

Créez un objet, annotez-le avec l’annotation JAXB pour prendre en charge la conversion de fichier XML.

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "user")
public class User {

    String username;
    String password;
    int pin;

    @XmlElement
    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    @XmlElement
    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @XmlAttribute
    public int getPin() {
        return pin;
    }

    public void setPin(int pin) {
        this.pin = pin;
    }

}

Avec l’annotation JAXB, l’objet ci-dessus le convertira au format XML suivant.

  <user pin="value">
    <password>value</password>
    <username>value</username>
  </user>

3. JAX-RS

Pour retourner un fichier XML, annotez la méthode de service avec @Produces (" application/xml ") . RESTEasy convertira l’objet annoté JAXB en fichier XML et le renverra au client.

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("/xml/user")
public class XMLService {

    @GET
    @Path("/get")
    @Produces("application/xml")
    public User getUserInXML() {

        User user = new User();
        user.setUsername("mkyong");
        user.setPassword("password");
        user.setPin(123456);

        return user;

    }

}

3. Démo

Lorsque le modèle d’URI “ /xml/user/get ” est demandé, le fichier XML suivant est renvoyé.

<user pin="123456">
    <password>password</password>
    <username>mkyong</username>
</user>

résultat

Télécharger le code source

Téléchargez-le - lien://wp-content/uploads/2011/07/JAX-RS-Download-XML-JAXB-Example.zip[JAX-RS-Download-XML-JAXB-Example.zip](7 Ko)

Références

Fournisseur JAXB]

lien://tag/jax-rs/[jax-rs]lien://tag/jaxb/[jaxb]lien://tag/resteasy/[resteasy]lien://tag/xml/[xml]