CDIプログラミングの基本(その1)
連載の第2回となる今回は、Seam3の土台となるCDI (Contexts and Dependency Injection) の基本を確認します。SeamFramework.orgではCDI仕様の参照実装Weldを開発しています。今回はJBossアプリケーションサーバー(JBossAS)上でWeldのサンプル動作させてみましょう。
CDI サンプルプログラムの実行
開発環境の準備
CDIのプログラミングを試すためには、以下の開発環境を準備してください。
- JDK 1.6
- Ant 1.8
- JBoss AS 6.0.0.Final (jboss-as-distribution-6.0.0.Final.zip)
- Weld 1.10.GA (weld-1.1.0-Final.zip)
JDKはバージョン1.6以降が必要です。JBossAS 6はJBoss.orgからダウンロードします。Weld はSeamFramework.orgからダウンロードしてください。
→参照リンク:JBossAS 6
JBossAS 6のインストールと起動
jboss-as-distribution-6.0.0.Final.zipを展開してください。
JBossの起動はbinディレクトリ直下にあるrunコマンドを実行します。
> cd jboss-6.0.0.Final/bin > ./run.sh
JBossの停止は起動した端末上でCtrl-Cを押すか、またはbin/shutdownコマンドを実行します。
以後、サンプル実行に必要となりますのでJBossASは起動した状態のままにしておいてください。
Weldサンプルの実行
weld-1.1.0-Final.zipを展開すると、weld-1.1.0-Final/examplesにサンプルプログラムが含まれています。Weldのサンプルをビルド、実行するにはAntを使います。weld-1.1.0-Final/examples/build.propertiesのjboss.homeを環境に合わせて編集してください。
ビルドを実際にするのはMavenです。ビルド途中にMavenリポジトリからライブラリをダウンロードするため、サンプルのビルドにはインターネットに接続できる環境が必要ですのでご注意ください。
Weldのサンプルは複数提供されています。ここではJSFのサンプルのtranslatorを選択してみましょう。ビルドとJBossASへのデプロイはAntコマンドで実行します。図1に示した手順でビルドを実行してください。
図1:weld-translatorのビルド(クリックで拡大) |
ビルドが成功するとJBossASへのデプロイが行われ、 http://localhost:8080/weld-translator で図2のようなアプリケーションが起動します。translatorサンプルは、画面上から任意の文字列を入力して"Translate"ボタンを押すと、ラテン語へ翻訳するというものです。実際には、どのような文字列を入力しても同じダミーの文字列が出力されます。
図2:translator画面(クリックで拡大) |