要求と応答での JAXB ベースの Atom モデルの使用

JAXB アノテーション付きオブジェクトを使用すると Atom 文書を表示できます。これは Atom 形式が XML に基づいているためです。そのため、Atom フィードおよび Atom エントリーを取り込んだり作成したりするリソース・メソッドを実装する 1 つの方法は、Atom モデルを使用する JAXB アノテーション付きオブジェクトを戻すことです。JAX-RS ライブラリーは JAXB に基づいた Atom モデルを提供します。

このタスクについて

JAXB Atom モデルは、Apache Wink ベースの IBM® JAX-RS ライブラリーの JAR ファイルに含まれます。このモデルは JAXB に基づいていることから、Atom フィードと Atom エントリーの読み取りおよび書き込みに、組み込まれた JAXB エンティティー・プロバイダーが自動的にオブジェクトで使用されます。Atom モデルのメソッドについて詳しくは、API に関する資料を参照してください。

次のクラスを使用すると、要求エンティティーまたは応答エンティティーを示すことができます。
  • org.apache.wink.common.model.atom.AtomEntry
  • org.apache.wink.common.model.atom.AtomFeed
  • org.apache.wink.common.model.synd.SyndEntry
  • org.apache.wink.common.model.synd.SyndFeed
また、これらのクラスをリソース・メソッド・パラメーターとして使用すると、着信 Atom 要求を表示することもできます。同様に、これらのクラスのいずれでもリソース応答として返すことができます。
サポートされる構成 サポートされる構成: JAXB から JSON への変換機能をサポートするサード・パーティーのライブラリーがいくつかあります。JAXB Atom モデルでは、サード・パーティーの JAXB から JSON への変換ライブラリーではサポートされていない JAXB 機能が使用できます。sptcfg

手順

  1. Atom フィードを応答メッセージ本体としてリソース・メソッドに戻す、新規の AtomFeed オブジェクトを作成します。
    @javax.ws.rs.GET
    public org.apache.wink.common.model.atom.AtomFeed getFeed() {
        org.apache.wink.common.model.atom.AtomFeed feed = new org.apache.wink.common.model.atom.AtomFeed();
    }
  2. フィードに情報を追加するには、AtomFeed Java™ オブジェクトのメソッドを呼び出し、AtomEntry オブジェクトをフィード・リストに追加します。
    @javax.ws.rs.GET
    public org.apache.wink.common.model.atom.AtomFeed getFeed() {
            org.apache.wink.common.model.atom.AtomFeed feed = new org.apache.wink.common.model.atom.AtomFeed();
            feed.setTitle(new org.apache.wink.common.model.atom.AtomText("Feed Title"));
            
            org.apache.wink.common.model.atom.AtomEntry entry = new org.apache.wink.common.model.atom.AtomEntry();
            entry.setTitle(new org.apache.wink.common.model.atom.AtomText("Entry Title"));
            entry.setId("1");
            
            org.apache.wink.common.model.atom.AtomLink link = new org.apache.wink.common.model.atom.AtomLink();
            link.setHref("http://www.example.com/");
            List< org.apache.wink.common.model.atom.AtomLink> entryLinks = entry.getLinks();
            entryLinks.add(link);
            
            List< org.apache.wink.common.model.atom.AtomEntry> entries = af.getEntries();
            entries.add(entry);
    }
  3. Java メソッドでフィードを戻します。
    @javax.ws.rs.GET
    public org.apache.wink.common.model.atom.AtomFeed getFeed() {
            org.apache.wink.common.model.atom.AtomFeed feed = new org.apache.wink.common.model.atom.AtomFeed();
            feed.setTitle(new org.apache.wink.common.model.atom.AtomText("Feed Title"));
            
            org.apache.wink.common.model.atom.AtomEntry entry = new org.apache.wink.common.model.atom.AtomEntry();
            entry.setTitle(new org.apache.wink.common.model.atom.AtomText("Entry Title"));
            entry.setId("1");
            
            org.apache.wink.common.model.atom.AtomLink link = new org.apache.wink.common.model.atom.AtomLink();
            link.setHref("http://www.example.com/");
            List< org.apache.wink.common.model.atom.AtomLink> entryLinks = entry.getLinks();
            entryLinks.add(link);
            
            List< org.apache.wink.common.model.atom.AtomEntry> entries = af.getEntries();
            entries.add(entry);
            return entries;
    }
  4. (オプション) Atom フィードまたはエントリーが要求で送信される場合、Atom タイプの 1 つをパラメーターとしてリソース・メソッドに追加できます。 Atom タイプの 1 つをパラメーターとしてリソース・メソッドに追加すると、すべての着信 Atom フィード・データはパラメーターとして渡されます。
    @javax.ws.rs.POST
    public void postFeed(org.apache.wink.common.model.atom.AtomFeed incomingFeed) {
        // use the incomingFeed object
    }

タスクの結果

Atom JAXB モデルを使用して、要求エンティティーおよび応答エンティティーを表示することができました。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_atomcontent_jaxb
ファイル名:twbs_jaxrs_atomcontent_jaxb.html