SOAフレームワークBeehiveに挑戦(1) 3/4
Beehiveでメタデータ(JSR 175/181)を体験しよう
www.netpotlet.com
原田洋子
2005/1/21
現在、Apache Beehiveプロジェクトには次の3つのサブプロジェクトがあります。これらはいずれもJSR 175やJSR 181で定義されているメタデータ機能を活用しています。
- Page Flowプロジェクト
- Controlプロジェクト
- Web Serviceプロジェクト
Beehiveは1つの製品ではなく配下にあるこのサブプロジェクトの融合体です。現状ではJakarta Commonsプロジェクトのサブプロジェクトほど組織的な開発体制ではなく、どちらかというとTomcatのCatalina(サーブレットエンジン、および本体)、Coyote(コネクタ)、Jasper(JSPエンジン)に近い体制になっています。また、開発体制だけではなく、製品としても個別にダウンロードして使えるものにはなっていません。
NetUI PageFlowsプロジェクト
StrutsベースのWebアプリケーションフレームワークを開発するプロジェクトです。JSR 175メタデータを使ってStrutsのコンフィグレーションファイルを自動生成します。
Beehiveプロジェクトのサイトで公開されているチュートリアル
には、リスト1のようにBeehiveが解釈する注釈の@Jpf.Controller、@Jpf.Action(メンバfowardでも値に注釈の@Jpf.Forwardを使っている)を使ってコントローラを記述し、netuiのHTMLタグを使ってJSPを記述する例があります。付属のビルドファイルを使ってAntコマンドでデプロイすると、WEB-INF以下の.pageflow_struts-generatedディレクトリにコンフィグレーションファイルが自動生成されます。Beehiveには注釈を解釈するAntタスクも含まれています。
import org.apache.beehive.netui.pageflow.PageFlowController; |
リスト1 ページフローのコントローラ:Contoller.jpf |
<%@ page language="java" |
リスト2 ページフローのサンプルJSP:index.jsp |
Controlsプロジェクト
軽量コンポーネントフレームワークのためのプロジェクトで、コンポーネントは注釈を使って記述されます。J2EEの世界にはEJBやデータベース、ストリームといったさまざまなリソースがありますが、アクセスするには各リソースに合わせた方法で参照するのが一般的です。このプロジェクトは注釈をうまく利用することでどのようなリソースでも、同様のプログラミングでアクセスできるようにすることを目標にしています。
1つのコントロールはインターフェイスと実装の2つで構成されますが、チュートリアル
によると、リスト3のインターフェイスとリスト4の実装を用意し、JSPをリスト5のように記述します。リスト3では@ControlInterface、リスト4では@ControlImplementationという注釈を使っています。インターフェイスと実装からJavaBeansが作られますが、コードはWEB-INF/.tmpbeansrc以下に生成されます。
package hellocontrol; |
リスト3 コントロールのサンプルインターフェイス:Hello.java |
package hellocontrol; |
リスト4 コントロールのサンプル実装:HelloImpl.jcs |
<%@ page language="java" contentType="text/html;charset=UTF-8"%> |
リスト5 コントロールのサンプルJSP:hello.jsp |
Web Servicesプロジェクト
JSR 181の実装を開発するプロジェクトです。JSR 181を利用して簡単にWebサービスを作れるようにすることが目的です。
ここでも、どのようにするのかをチュートリアル
で調べてみましょう。例えばリスト6のように記述し、付属のビルドファイルを使ってAntコマンドでデプロイすると、注釈が解釈されWebサービスに必要なファイルが生成されます。ブラウザから
http://localhost:8080/ws_tutorial/template/Blank.jws? |
※ |
のようにリクエストするとリスト7のSOAPレスポンスが返ってきます。
package template; |
リスト6 Webサービスのサンプルテンプレート:Blank.jws |
<soapenv:Envelope> |
リスト7 Blank.jwsのSOAPレスポンス |
(次ページへ続く)
3/4 |
Index | |
SOAフレームワークBeehiveに挑戦(1) Beehiveでメタデータ(JSR 175/181)を 体験しよう |
|
Page
1 ・Apache Beehiveの生い立ち ・Apache BeehiveはSOAなのか ・SOAが目指してきたもの |
|
Page 2 ・Apache Beehiveに適用されている仕様 |
|
Page 3 ・3つのサブプロジェクト |
|
Page 4 ・Apache Beehiveを動かしてみよう ・まとめ |
「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」の詳細も紹介する
|
|