18.2. Atom プロバイダで JAXB を使用


org.jboss.resteasy.plugins.providers.atom.Content クラスは、 エントリのコンテンツボディを形成する、 JAXB アノテーションが付けられたオブジェクトのマーシャリングやアンマーシャリングを実行できるようにします。 次のコードは、 エントリのコンテンツボディとして添付される Customer オブジェクトで Entry を送信する例です。
@XmlRootElement(namespace = "http://jboss.org/Customer")
@XmlAccessorType(XmlAccessType.FIELD)
public class Customer
{
   @XmlElement
   private String name;

   public Customer()
   {
   }

   public Customer(String name)
   {
      this.name = name;
   }

   public String getName()
   {
      return name;
   }
}

@Path("atom")
public static class AtomServer
{
   @GET
   @Path("entry")
   @Produces("application/atom+xml")
   public Entry getEntry()
   {
      Entry entry = new Entry();
      entry.setTitle("Hello World");
      Content content = new Content();
      content.setJAXBObject(new Customer("bill"));
      entry.setContent(content);
      return entry;
   }
}
Copy to Clipboard Toggle word wrap
Content.setJAXBObject() メソッドは、 マーシャリングされる Java JAXB オブジェクトが返されていることをコンテンツオブジェクトに伝えます。 XML 以外の基本形式を使用する場合 (例えば application/atom+json など)、 添付される JAXB オブジェクトはその形式にマーシャリングされます。
入力が Atom ドキュメントである場合、 Content.getJAXBObject(Class clazz) を使用して Content より JAXB オブジェクトを抽出することもできます。 次のコードは Content より Customer オブジェクトを抽出する例です。
@Path("atom")
public static class AtomServer
{
   @PUT
   @Path("entry")
   @Produces("application/atom+xml")
   public void putCustomer(Entry entry)
   {
      Content content = entry.getContent();
      Customer cust = content.getJAXBObject(Customer.class);
   }
}
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat