Пример XML с RESTEasy JAXB

RESTEasy, требуется JAXB для поддержки XML-файла. В этом руководстве мы покажем вам, как создать «пользовательский» объект, преобразовать его в файл XML и вернуть его обратно клиенту.

1. RESTEasy JAXB

Чтобы использовать JAXB в RESTEasy, необходимо включить зависимость « resteasy-jaxb-provider.jar »

File: 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. JAXB XML Provider

Создайте объект, добавьте аннотацию JAXB для поддержки преобразования файлов 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;
    }

}

С аннотацией JAXB вышеуказанный объект преобразует его в следующий формат XML.

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

3. JAX-RS

Чтобы вернуть файл XML, аннотируйте метод службы с помощью @Produces (" application/xml ") . RESTEasy преобразует аннотированный объект JAXB в файл XML и возвращает его клиенту.

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. Демо

При запросе шаблона URI « /xml/user/get » будет возвращен следующий XML-файл.

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

Изображение://wp-content/uploads/2011/07/jaxb-xml-provider-resteasy.png[результат, название = "JAXB-XML-поставщик-Resteasy", ширина = 623, высота = 340]

Скачать исходный код

Загрузите его - ссылка://wp-content/uploads/2011/07/JAX-RS-Download-XML-JAXB-Example.zip[JAX-RS-Download-XML-JAXB-Example.zip](7 КБ)

Рекомендации

JAXB-провайдер]

ссылка://тег/jax-rs/[jax-rs]ссылка://тег/jaxb/[jaxb]ссылка://тег/resteasy/[resteasy]ссылка://тег/xml/[xml]