付録L.3 Enterprise Bean(アノテーション)のサンプルプログラム
アノテーションに対応したEnterprise Beanのサンプルプログラムは,次の3種類を提供します。
-
アノテーション対応のEnterprise Bean(データベース接続なし)
格納場所は<Application Serverのインストールディレクトリ>\CC\examples\ejb\annotation\statelessです。
-
アノテーション対応のEnterprise Bean(データベース接続あり)
格納場所は<Application Serverのインストールディレクトリ>\CC\examples\ejb\annotation\statefulです。
-
Enterprise Bean(EJB2.0)から接続するアノテーション対応のEnterprise Bean
格納場所は<Application Serverのインストールディレクトリ>\CC\examples\ejb\annotation\homeです。
サンプルプログラムの概要と,実行手順を示します。
- 〈この項の構成〉
(1) アノテーション対応のEnterprise Bean(データベース接続なし)の概要
データベースに接続しない場合のアノテーション対応のEnterprise Beanサンプルプログラム「annotation_stateless」の構成を次に示します。
Webブラウザ経由でサーブレットにアクセスし,実行結果をブラウザ上に表示します。このサンプルプログラムでは,サーブレットからビジネスインタフェースを使用したEnterprise Beanを呼び出します。
アノテーション対応のEnterprise Beanの参照を取得するため,サーブレット側で@EJBアノテーションを使用します。
@EJB(beanName="MyConverter") Converter converter;
実行例を次に示します。
(2) アノテーション対応のEnterprise Bean(データベース接続あり)の概要
データベースに接続する場合のアノテーション対応のEnterprise Beanサンプルプログラム「annotation_stateful」の構成を次に示します。
このサンプルプログラムでは,アノテーションを使用してデータベースに接続します。アノテーション対応のEnterprise Beanで,@Resourceアノテーションを使用してリソースを取得します。
@Resource(mappedName="DB_Connector_for_Cosminexus_Driver") private DataSource ds;
サーブレット側からビジネスインタフェースを使用したStateful Session Beanをlookupするには,JNDIを使用します。
Context initial = new InitialContext(); duke = (Bank)initial.lookup("java:comp/env/ejb/Bank");
実行例を次に示します。
ユーザID,金額を入力して処理を実行します。指定できるユーザIDは001だけです。初期残高は10,000円です。
(3) Enterprise Bean(EJB2.0)から接続するアノテーション対応のEnterprise Beanの概要
アノテーション対応のEnterprise Beanにホームインタフェースの定義を追加することで,EJB2.0からアノテーション対応のEnterprise Beanを呼び出せます。この処理を実行するサンプルプログラム「annotation_home」の構成を次に示します。
このサンプルプログラムでは,EJB2.0のEnterprise Beanからローカルホームインタフェースが使用されているアノテーション対応のEnterprise Beanを呼び出します。EJB2.0のEnterprise Beanのコードでは,ローカルホームインタフェースをlookupします。
... Context ctx = new InitialContext(); Converter2LocalHome home = (Converter2LocalHome)ctx.lookup("java:comp/env/ejb/Converter2"); ...
アノテーション対応のEnterprise Beanのローカルホームインタフェースは,Enterprise Beanに@LocalHomeアノテーションを指定します。
@Stateless(name="MyConverter2") @LocalHome(value=Converter2LocalHome.class) public class Converter2EJB { ... }
(4) Enterprise Bean(アノテーション)のサンプルプログラムの実行手順
サンプルプログラムの実行手順を示します。
(a) サンプルプログラムのコンパイル
サンプルで提供するバッチファイルを使用して,サンプルプログラムをコンパイルします。
アノテーション対応のEnterprise Bean(データベース接続あり/なし)のサンプルプログラムは,「compile.bat」を実行します。
EJB2.0のEnterprise Beanからアノテーション対応のEnterprise Beanへ接続するサンプルは,「compileBean.bat」および「compileClient.bat」を実行します。
(b) SQLの実行(アノテーション対応のEnterprise Bean(データベース接続ありの場合))
データベースに接続するサンプルプログラムの場合は,あらかじめSQLを実行してください。SQL文はサンプルで提供しています(createTable_Oracle.sql,createTable_HiRDB.sql)。
(c) J2EEサーバのセットアップ
「付録L.1(1) J2EEサーバのセットアップ」を参照してください。
(d) J2EEサーバのカスタマイズ
「付録L.1(2) J2EEサーバのカスタマイズ」を参照してください。
(e) J2EEサーバの起動
「付録L.1(3) J2EEサーバの起動」を参照してください。
(f) リソースアダプタの設定(アノテーション対応のEnterprise Bean(データベース接続ありの場合))
データベースに接続するサンプルプログラムの場合は,リソースアダプタの設定が必要です。「付録L.1(4) リソースアダプタの設定」を参照してください。
(g) アプリケーションのデプロイ
サンプルで提供するバッチファイル(deployApp.bat)を使用して,アプリケーションをデプロイします。このバッチファイルは,アプリケーションのインポート,開始,一覧表示,およびEnterprise Beanのスタブ・インタフェースの取得をします。
このバッチファイルで実行される処理の内容を示します。
-
アプリケーションのインポート,開始,一覧表示
実行内容については,「付録L.1(5) アプリケーションのインポート,設定,および開始」を参照してください。
-
Enterprise Beanのスタブ・インタフェースファイルの取得
cjgetsubsjarコマンドで,Enterprise Beanのスタブとインタフェースを取得します。
(h) アプリケーションの実行
アプリケーションごとに実行方法を示します。
-
アノテーション対応のEnterprise Bean(データベース接続なし)の場合
ブラウザを起動し,URLに次の文字列を指定します。
http://<マシン名>:<ポート番号>/<ContextRoot>/<ターゲットファイル>
-
アノテーション対応のEnterprise Bean(データベース接続あり)の場合
ブラウザを起動し,URLに次の文字列を指定します。
http://<マシン名>:<ポート番号>/<ContextRoot>/<ターゲットファイル>
-
Enterprise Bean(EJB2.0)から接続するアノテーション対応のEnterprise Beanの場合
サンプルで提供するバッチファイル(testClient.bat)を使用してEJBクライアントアプリケーションを実行します。実行例を示します。
C:\Program Files\Hitachi\Cosminexus\CC\examples\ejb\annotation\home>testClient KDJE40053-I The cjclstartap command will now start. (directory for the user definition file = C:\Program Files\Hitachi\Cosminexus\CC\examples\ ejb\annotation\home, PID = 3684) 93.632 KDJE40054-I The cjclstartap command was stopped. (PID = 3684, exit status = 0)
(i) アプリケーションのアンデプロイ
「付録L.1(6) アプリケーションの停止,削除」を参照してください。
(j) J2EEサーバの終了
「付録L.1(7) J2EEサーバの終了」を参照してください。