RESTEasy + JAXBを使用したXMLの例
RESTEasyは、JAXBがXMLファイルをサポートするために必要です。このチュートリアルでは、「ユーザー」オブジェクトを作成し、XMLファイルに変換してクライアントに戻す方法を示します。
1. RESTEasy JAXB
RESTEasyでJAXBを使用するには、 ”
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プロバイダ
XMLファイルの変換をサポートするために、オブジェクトを作成し、JAXB注釈で注釈を付けます。
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; } }
デモ
URIパターン ”
/xml/user/get
“が要求されると、以下のXMLファイルが返されます。
<user pin="123456"> <password>password</password> <username>mkyong</username> </user>
ソースコードをダウンロードする
ダウンロードする –
JAX-RS-Download-XML-JAXB-Example.zip
(7 KB)
参考文献
-
http://docs.jboss.org/resteasy/docs/2.2.1.GA/userguide/html/Built
in
JAXB__providers.html[RESTEasy
JAXBプロバイダ]