このチュートリアルでは、JAXBを使用して、
objectをJersey
のXMLに変換してユーザーに返します。
1.依存関係
JAXBとJerseyを統合するために、余分な依存関係は必要ありません。単に ”
jersey-server.jar
“をインクルードします。
2. JAXBアノテーション
後で変換するために、JAXB注釈でオブジェクトに注釈を付けます。
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;
}
}
上記のオブジェクトは、以下のXML形式に変換されます。
<customer pin="value">
<name>value</name>
</customer>
3.ジャージとXML
XMLファイルを返すには、メソッドに `@Produces(MediaType.APPLICATION__XML)`と注釈を付けます。 Jerseyは、JAXBアノテートされたオブジェクトを自動的に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.デモ
URIパターン ”
xml/customer/\ {param value}
“が要求されると、フォーマットされたXMLファイルが返されます。
ソースコードをダウンロードする
ダウンロードする –
XML-Support-Jersey-Example.zip
(6 KB)
参考文献
ジャージーで]