Summary)とは、サイトのサマリ情報(新着コンテンツやニュース情報など)を配信するためのXMLフォーマットです。最近では、多くのニュースサイトがRSSを導入しています。昨今とみに話題にのぼるBlogツールでも、RSS発行に対応するものが増え、その認知度は急速に高まっています。RSSリーダ(アグリゲータ)のような専用のアプリケーションを利用することで、直接サイトにアクセスしなくても各サイトの更新状況が一括で確認できるという点も、注目されている理由の1つでしょう。.NET)などを参考にしていただくとして、本TIPSではJSP/サーブレットアプリケーションからRSS文書(RSSフィールド)を動的に配信する方法を紹介することにしましょう。冒頭で触れたように、RSSはXML構文をベースにしているためJ2SEのコアAPIを利用するだけでもRSS文書を生成/解析することは可能です。それにはまずRSS独自の構文を理解する必要があります。RSSと一口にいっても、実はさまざまなバージョンが乱立しています。0.90、0.91、1.0、2.0......しかも、それぞれのバージョンごとに互換性がないのが、RSS活用における現時点での最大の問題点なのです。これを、開発者が複数のコードを並存させることで対応しなければならないとしたら、大変非効率でしょう。そこで登場するのが、RSS4jライブラリです。Javaの世界には、RSSを生成/解析するためのライブラリが多く存在しますが、RSS4jはその中でも代表的なものの1つです。RSS4jを利用することで、複数のバージョンに対応したRSSフィールドを簡単に配信することができ、また、開発者がRSSの構文を意識する必要がなくなります。解説(1)RSS4jライブラリをインストールするRSS4jライブラリは、以下のサイトからダウンロードすることが可能です。サイトからダウンロードできるのはRSS4jxxx.jar(xxxはバージョン番号)という名前の「.jar」ファイルですが、サイトの注意書きをご覧いただければお分かりになるように、これはAPIドキュメントやソースコード、バイナリデータなどを含んだアーカイブです。アプリケーションに登録を行うのは、アーカイブ内に含まれるRSS4j.jarになるので注意してください。・http://www.churchillobjects.com/c/13005.htmlRSS4j.jarは、RSS4jxxx.jarを解凍してできたlibフォルダ配下にあるので、これを、アプリケーションルート配下の「/WEB-INF/lib」フォルダにコピーしてください。(2)サーブレットクラスを生成する環境の準備が整ったところで、RSSフィールドを配信するためのサーブレットクラスを定義してみましょう。サーブレットクラス定義に先立って、サマリ情報の元データとなる情報テーブル(site_info_tbl)をデータベースに用意しておきます。サイト概要RSSフィールドを配信するためのサーブレットクラスは以下のとおりです。{se.printStackTrace();}}}}(3)デプロイメント・ディスクリプタにサーブレットクラスを登録するこのサーブレットクラスを実行するに当たっては、あらかじめデプロイメント・ディスクリプタ(web.xml)に対して、サーブレットの登録を行う必要があります。Solution)も併せて参照してください)。web-app_2_4.xsd"version="2.4">...中略...<servlet><servlet-name>RssServlet</servlet-name><servlet-class>to.msn.wings.javatips.RssServlet</servlet-class></servlet><servlet-mapping><servlet-name>RssServlet</servlet-name><url-pattern>/rss.xml</url-pattern></servlet-mapping>...中略...</web-app>このコードの実行結果は、以下のようになります。クエリパラメータが無指定の場合、あるいは、versionパラメータに0.90、0.91、1.0を指定した場合とで動的に異なるRSS文書が生成される点に注目してください。以下に、実行結果を示します。(クリックすると拡大)ロジックの詳細な流れについては、ソースコード内のコメントを参照いただくとして、ここで注目していただきたいのは、RSS4jライブラリの構造です。RSS4jライブラリは、RSS文書全体を表すRssDocumentクラスを頂点にして、複数個のチャネル情報(RssChannelクラス)、さらにその配下にはロゴイメージ情報を表すRssChannelImageクラスや個々のサマリアイテムを表すRssChannelItemクラスなどが属するという構造になっています。RSS4jライブラリでは、これらのオブジェクトを生成し、addXxxxxメソッドで階層構造の関連付けを行っていくことで、最終的にRSS文書を生成するという流れになっています。開発者はRSS4jを利用することで、RSSの構文自体は理解しなくても、極めて直感的にRSS文書を組み立てることができるのです。RSSのバージョンによっては出力することのできない情報もありますので、注意してください(詳細な出力項目については、RssServletクラスが生成したバージョンごとのRSS文書を概観してみるとよいでしょう)。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。