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 КБ)
Рекомендации
, http://docs.jboss.org/resteasy/docs/2.2.1.GA/userguide/html/Built in JAXB__providers.html[RESTEasy
JAXB-провайдер]
ссылка://тег/jax-rs/[jax-rs]ссылка://тег/jaxb/[jaxb]ссылка://тег/resteasy/[resteasy]ссылка://тег/xml/[xml]