SOAフレームワークBeehiveに挑戦(3) 1/4
PollinateでNetUI Page Flowプログラミング
BEAシステムズがApache財団にWebLogic Workshopの一部を寄贈したことで誕生した、オープンソースのSOAフレームワーク「Apache Beehive」。本連載はその仕様を詳細に検証することで、J2EEの目指している新たな方向性を明らかにする。(編集局) |
www.netpotlet.com
原田洋子
2005/7/1
主な内容 --Page 1--
NetUI Page Flowの概要プログラミング環境 プログラミングのためのドキュメント --Page 2--
シンプルなプログラム−コントローラのプログラミング --Page 3--
−JSPページのプログラミング−サーバのセットアップと実行 --Page 4--
データ表示方法とバリデーションまとめ&サンプルコードのダウンロード |
本連載では第1回「Beehiveでメタデータ(JSR 175/181)を体験しよう」でApache Beehiveの概要を、第2回「Beehive開発環境「Pollinate」を使ってみよう」でEclipseプラグインのPollinateを紹介してきましたので、今回はPollinateを使ってどのようにApache Beehiveのプログラミングを行うかを見ていきます。
今回紹介するプログラミングはApache Beehiveの3つのプロジェクトのうち、「NetUI Page Flowプロジェクト」が提供する機能を利用するものです。このプロジェクトは短くして「Page Flows」と呼ぶことが多いので、本記事でもPage Flowsと呼ぶことにします。
Page Flowsは第1回の記事で簡単に触れたように、StrutsベースのWebアプリケーション・フレームワークです。JSR 175メタデータを利用するのがApache Beehiveの最大の特徴ですが、Page FlowsでもJSR 175の仕様に従った注釈が多数定義されています。プログラマはこれらの注釈を使ってアプリケーションを作っていきます。注釈を利用すると、すべてを通常のJavaコードで記述するよりも制御の流れが分かりやすくなると同時に、プログラムの行数も減っていきます。開発の最初の段階でEoD(Ease of Development)になっているばかりではなく、後になってプログラムを手直ししなければならない場合でも、比較的EoDになっているといえるでしょう。
Page Flowsのプログラミングは、図1に示すようにJSPページでPage Flowタグライブラリを、コントローラ(JPFファイル)で注釈を使います。また、注釈だけでは不十分な場合にはコントローラでPage Flow APIも使います。コントローラには.jpfという拡張子を付け、通常、Controller.jpfというファイル名にしますが、これはJavaのクラスファイルそのもので、実際にはControllerクラスの定義です。
図1 Page Flowsのプログラミング |
では、プログラミングの環境を整えて、実際に動かしてみましょう。
Pollinateのインストール
本記事ではEclipseプラグインのPollinateを使ってプログラミングを行いますので、まず、Pollinateが動くように環境を整えます。Pollinateについては第2回ですでに説明しているので、それに従ってインストールすればいいのですが、その後、新しいバージョンがリリースされましたので、本記事では次の環境で動作を確認しました。
- JDK 1.5.0_03
- Eclipse 3.1M5a
- Web Tools 1.3M3
- Pollinate M3
- Tomcat 5.5.9
Eclipse、Web Toolsともにここに挙げたバージョンより新しいものがリリースされていますが、上記の組み合わせにしないとPollinateが満足に動かないので注意してください。なお、Web ToolsがWebサービスにも対応したため、必要なアーカイブが増えています。Web Services Required Jars Download Instructionsを参照してください。
Eclipseの起動
前回記事でも説明しましたが、Apache Beehiveは注釈を利用するので、注釈解釈ツール「apt」が必要です。本来はEclipseの設定だけでaptコマンドが使えるようになるはずですが、Pollinateは開発中のプラグインということもあり、まだ対応できていません。そのため、次のようにしてEclipseを起動します。
|
Eclipseが立ち上がったらワークベンチの状態にして、Javaコンパイラのバージョンを指定します。指定方法は前回記事を参照してください。
プロジェクトの作成
プロジェクトの作成についても前回記事と同じ作業を行います。ただし、今回はサンプルを動かすのではありませんので、前回記事の図6で行ったテンプレートの指定は行いません。
ファイル → 新規 → その他 → Pollinate/Beehive Project → 次へ
→ Nameにプロジェクト名入力(本記事ではeaves)
→ New...(Target Serverのボタン)
(サブウィンドウ上の作業)
→ Apache → Apache Tomcat v5.5 → 次へ
→ Browse(Tomcat 5.5.9のトップディレクトリを選択)→ 終了
(元ウィンドウで)
→ 終了
以上でPollinateプロジェクトができました。作業しやすくするためにパースペクティブをJ2EEに変えておきましょう。
ウィンドウ → パースペクティブを開く → その他 → J2EE選択 → OK
作成したeavesプロジェクトは図2に示すようにProject ExploreのDynamic Web Porject以下にあります。
図2 Pollinateプロジェクト「eaves」 |
問題の解決
J2EEパースペクティブに切り替えると3つの問題が報告されます(図3)。1つはeaves/WebContent/WEB-INF/netui-validator-rules.xmlで発生している問題ですが、Eclipse画面右下にある問題ビューの記述欄を見るとvalidator要素の必須属性であるmsgがないことが原因であることが分かります。リスト1に示すように1051行目に「msg=""」の属性を追加しておきます。
図3 Pollinate M3プラグインで発生する問題(画像をクリックすると拡大します) |
1042 <validator name="netui_validwhen" |
リスト1 netui-validator-rules.xmlの修正 (注: ⇒ は表示の都合で改行していることを表します) |
残り2つの問題は、どちらもlog4j.xmlから参照されているlog4j.dtdがないために発生しています。Log4Jのアーカイブを取得して同梱されているlog4j.dtdをlog4j.xmlと同じディレクトリに置くと解決されます 注1。ただし、log4j.xml自身にも問題があり、このままではログが出力されないので、本記事ではlog4j.xmlの代わりにリスト2に示すlog4j.propertiesを使い、log4j.xmlを削除しています。
注1 プラグインに何かの問題があるようで、Eclipseを何度か再起動しないと解決されませんでした。 |
log4j.rootCategory=WARN,BEEHIVE_FILE_LOG,BEEHIVE_CONSOLE_LOG |
リスト2 log4j.properties (注: ⇒ は表示の都合で改行していることを表します) |
以上で準備が整いプログラミングを始められるようになりましたが、プログラムの話をする前に、プログラミングをするためには何を見ればいいかについて触れておきます。
注釈のドキュメント
Beehiveを使いこなすうえで、注釈のドキュメントは必須です。Page Flowsについてはhttp://incubator.apache.org/beehive/の左側にあるナビゲーションを
Documentation → Reference Docs → Page Flows → Page Flow Annotations
とたどったところにありますので参照してください。
Page Flowタグライブラリのドキュメント
動的に埋め込むパラメータの表示やフォームの処理にはコントローラ内の注釈やメソッドなどとJSPを連携させますが、そこで必要になるのがPage Flowタグライブラリです。注釈同様、Beehiveを使ううえではタグライブラリのドキュメントも必須です。参照するにはhttp://incubator.apache.org/beehive/の左側にあるナビゲーションを
Documentation → Reference Docs → Page Flows → <netui> Tags
とたどります。
Page Flow APIのドキュメント
フォワード先のJSPで利用するパラメータをセットするなど、コントローラのメソッドで使用するAPIのドキュメントです。注釈、Page Flowタグライブラリばかりではなくこのドキュメントも見ると、より便利にBeehiveを使えるようになるでしょう。参照するにはhttp://incubator.apache.org/beehive/の左側にあるナビゲーションを
Documentation → Reference Docs → Page Flows → Page Flow Javadoc
とたどるか、
Documentation → Javadoc → Page Flow Javadoc
とたどります。
なお、Apache Beehiveのサイトで公開されているドキュメントはBeehiveの最新版に対応していますが、Pollinate M3がサポートしているBeehiveは最新版ではないので、ドキュメントにあってもPollinateではコンパイルできないなどの問題が起こることがあります。(次ページに続く)
1/4 |
Index | |
SOAフレームワークBeehiveに挑戦(3) PollinateでNetUI Page Flowプログラミング |
|
Page 1 ・NetUI Page Flowの概要 ・プログラミング環境 ・プログラミングのためのドキュメント |
|
Page 2 ・シンプルなプログラム −コントローラのプログラミング |
|
Page 3 −JSPページのプログラミング −サーバのセットアップと実行 |
|
Page 4 ・データ表示方法とバリデーション ・まとめ&サンプルコードのダウンロード |
「SOAフレームワークBeehiveに挑戦」 |
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する
|
|