Home > Documentation > 4. Apache Geronimo への移行 > 4.2. JBoss to Geronimo - EJB-BMP 移行 |
エンティティー・ビーンは、データベースから読み込むことができ、複数のフィールドをデータで埋めているような、永続化された情報を表現するものとして定義されています。エンティティ・ビーンは、更新されたり、データベースへ書き戻されたりすることも可能です。エンティティー・ビーンには2種類あります。BMP(Bean-Managed Persistence) と CMP(Container-Managed Persistence) です。この文書では、BMP サンプル・アプリケーションの移行について取り扱います。この種のエンティティー・ビーンでは、読込や保存、データの検索といった永続化操作を実行するために、実際にコードを書かなければいけません。例えば、データベースに対して、select、insert、update、delete を実行する JDBC のような永続化 API を、開発者は使用する必要があります。
この文書は、次のセクションで構成されています:
BMP 実装はベンダーにより様々でしょう。本セクションの目的は、JBoss v4.0.5 と Apache Geronimo との間の BMP 仕様の機能比較を提供し、移行前の相違点や明確にし、それに応じて計画を立てられるようにします。
機能 | JBoss v4.2.1 | Apache Geronimo |
---|---|---|
EJB コンテナー | JBoss は独自の実装を使用します | Geronimo は OpenEJB を EJB コンテナーとして使用します |
これは、ユーザーにローンを許可し、管理者がローンを承認/拒否する、シンプルなローン登録のアプリケーションです。顧客は、管理者がローンの承認/拒否するためにシンプルな Java アプリケーションを運用している間、Web サイト上でローンを利用可能です。BMP エンティティー・ビーンは、データベースからローン関連で永続されているデータを管理するために使用されます。それに加え、ステートレス・セッション・ビーンは、ワークフロー関連の状態をハンドルするために使用されます。
次の図は、ローン管理の Web アプリケーション・フローを示します:
ローン登録の初期画面は、Webアプリケーションがローンと最新ステータスの一覧を表示する通知ボードとして、振る舞います。顧客がローンを利用する際、登録フォームを利用可能です。ローンの登録後、保留中の間は保持されます。管理者権限を持つマネージャーはローンのステータスを更新するために、小型のアプリケーションを使用します。当該アプリケーションによって、マネージャーは、ステータスを承認するか拒否するか変更することができます。
また、このローン管理 Web アプリケーションは、次の JSP ページを含んでいます:
ローン管理アプリケーションの開発および構築に使用したツールは、以下の通りです:
Eclipse IDE を使用してサンプル・アプリケーションは開発されました。非常に強力でポピュラーなオープンソース開発ツールであり、JBoss と Geronimo の両方にとって有効な統合プラグインです。Eclipse は次の URL からダウンロード可能です:
http://www.eclipse.org
Ant は Pure Java のビルド・ツールです。war ファイルの構築やオンライン仲介業務アプリケーションのデータベースの操作に使用されます。Ant は次の URL からダウンロード可能です:
http://ant.apache.org
このセクションでは、何処にどのようにして、サンプル JBoss リファレンス環境がインストールされ、シナリオを実装に対応付けるかを示します。この移行例では JBoss v4.1.2 が使用されたことを補足しておきます。
インストール、構成、JBoss の管理の詳細な手順は、製品ドキュメントに記載されています。最も新しく更新されているドキュメントについては、製品の Web サイトを確認してください。
次の一覧は、サンプル・アプリケーションをデプロイする開始地点として、初期環境のインストールと設定を完了しなければいけない一般的なタスクを強調しています。
この文書に含まれる Loan BMP アプリケーションをビルドして実行させるために、ビルド・ツールおよびアプリケーションで使用されるデータベースのインストールと設定が必要です。
このアプリケーションは JBoss バンドルの一部である HSQL データベースを使用しています。データベースを作成するためのスクリプトを変更する必要があります。<jboss_home>\server\<your_server_name>\data\hypersonic ディレクトリーにある *localDB.script*ファイルを編集してください:
サンプル HSQL データベースを作成するための次の例の内容を localDB.script ファイルの最初に追加してください。また、JBoss 固有データ配下にある config/db.sql に指定された同ファイルの終端にサンプルのデータを追加してください。
このファイルを編集する際は JBoss が実行していないことを確認してください。
すでに述べたとおり、Apache Ant は Online Brokerage アプリケーションのバイナリーをビルドするために使用されます。まだ Ant をインストールしていなかったら、そのためのよい機会です。さらに、<ant_home>/bin ディレクトリーがシステムの path 変数に追加されていることも確認してください。
Apache Ant は、次のURLからダウンロード可能です:
XDoclet は、構成ファイル生成のビルド・ツールとして使用します。オープンソースのコード生成エンジンです。Java の 属性指向プログラミングを可能にします。要約すると、Java ソースに対するメタ・データ(属性)を追加することによって、コードに意味を持たせることが可能となることを意味します。
XDoclet が EJB を作成するツールとして由来したとしても、汎用的なコード生成エンジンへ進化しました。XDoclet は、コアかつ非常に多くのモジュールから構成されます。新種のコンポーネントが必要となる場合、新規モジュールを書くために、かなり一方的です。
http://xdoclet.sourceforge.net/xdoclet/index.html
XDoclet の最新バージョンを解凍し、build.properties ファイルに xdoclet.home パラメータに設定してください。
この解説に含まれているローン管理アプリケーションでは、当該アプリケーションをビルドするために使用する Ant スクリプトが提供されています。次のリンクからローン・アプリケーションをダウンロードしてください:
zipファイルの解凍後、loan ディレクトリーが作成されます。そのディレクトリー内にある build.properties ファイルを開き、次の例で示されているように、あなたの環境に適合するプロパティーを編集してください:
## Set the Geronimo 2.0 home here geronimo.home=<geronimo_home> ## Set XDoclet 1.2.3 Home xdoclet.home=<xdoclet_home>
ビルド・プロセスを開始する前に、config ディレクトリーの build.properties にある geronimo.home や xdoclet.home エントリーに正しいパスを設定してください。
コマンド・プロンプトまたはシェルから、loan ディレクトリーへ移動し、ant jboss を実行してください。こうすると、ear ファイルがビルドされ、releases/jboss ディレクトリーにそれを直接配置します。
サンプル・アプリケーションをデプロイするには、loan/releases/jboss フォルダーへ作成された Loan.ear を <jboss_home>/server/<your_server_name>/deploy へコピーしてください。
JBoss がすでに始動していれば、アプリケーションを自動的にデプロイし、始動します。そうでなければ、次回の始動時に、当該アプリケーションはデプロイ、始動されます。
アプリケーションをテスト実行するには、Web ブラウザーを開いて、次の URL へアクセスしてください:
ここへアクセスすると、ローンと最新ステータスの一覧を含む、ローン管理のメイン画面へ遷移します。Register リンクをクリックすると、ローン情報のデータベースに対して、ローンを追加する前にいくつかの項目を入力するローンの登録フォームへ遷移します。
ローンのステータスを変更するには、管理者は、Web アプリケーションからローンIDを検索し、以下のようにして、それをクライアント・アプリケーションに指定してあげる必要があります。
java -jar LoanStatusChanger.jar <ローンID> <ステータス>
ステータスは、次の値にしたがって変更します。以下に示すのは、適切なローンのステータスです。
上記のコマンドを実行する前に <jboss-home>/client/jbossall-client.jar ファイルがクラスパスに追加されていることを確認してください。
以下の URL より Geronimo をダウンロードし、インストールしてください。
http://geronimo.apache.org/downloads.html
リリース・ノートでは、システム要件、インストール方法、Geronimo の始動方法に関する説明が記述されています。これ以降、Geronimo インストール・ディレクトリーのことを <geronimo_home> と記述します。
TCP/IP ポートの競合
もし同一マシン上で JBoss と Geronimo を稼動させたい場合には、少なくとも1つの初期サービス・ポートを変更してください。
ローン管理サンプル・アプリケーションをビルドすると、Ant はサンプル・アプリケーションがすでに提供している JBoss の jboss.xml および Geronimo の openejb-jar.xml の両ディスクリプターをパッケージングします。これらのファイルは loan/config ディレクトリーに配置されています。
以下の例は、JBoss デプロイメント・ディスクリプターを示しています。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN" "http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd"> <jboss> <enterprise-beans> <entity> <ejb-name>Loan</ejb-name> <local-jndi-name>Loan</local-jndi-name> <method-attributes> </method-attributes> </entity> <session> <ejb-name>LoanManager</ejb-name> <jndi-name>org.apache.geronimo.samples.loan.ejb.LoanManager</jndi-name> <local-jndi-name>LoanManager</local-jndi-name> <method-attributes> </method-attributes> </session> </enterprise-beans> <resource-managers> </resource-managers> </jboss>
以下の例で示している Geronimo デプロイメント・プランの内容と比較してみてください。
<?xml version="1.0" encoding="UTF-8"?> <openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1"> <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2"> <dep:moduleId> <dep:groupId>org.apache.geronimo.samples</dep:groupId> <dep:artifactId>LoanManagerEJB</dep:artifactId> <dep:version>1.0</dep:version> <dep:type>car</dep:type> </dep:moduleId> <dep:dependencies/> <dep:hidden-classes/> <dep:non-overridable-classes/> </dep:environment> <enterprise-beans> <session> <ejb-name>LoanManager</ejb-name> <ejb-ref> <ref-name>ejb/LoanLocal</ref-name> <ejb-link>Loan</ejb-link> </ejb-ref> </session> <entity> <ejb-name>Loan</ejb-name> <resource-ref> <ref-name>jdbc/LoanDataSource</ref-name> <resource-link>SystemDatasource</resource-link> </resource-ref> </entity> </enterprise-beans> </openejb-jar>
明確に示されている最初の違いは、Geronimo 固有の構成が JBoss の構成よりも情報が追加されていることです。Geronimo の構成ファイルの一部は Maven 2 のビルド・スクリプトとかなり酷似しています。これらの構成ファイルには EJB の情報を持っています。JBoss では EJB のリンクに対応する ローカル JNDI 名を使用し、Geronimo では EJB 名を直接使用します。上記の違いに加え、openejb-jar.xml ファイルは jboss.xml ファイルよりも EJB リファレンス情報をはっきりと指定しています。
Web アーカイブ関連の構成ファイルにおいても、少々の違があります。
<?xml version="1.0" encoding="UTF-8"?> <jboss-web> <ejb-local-ref> <ejb-ref-name>ejb/LoanManagerLocal</ejb-ref-name> <local-jndi-name>LoanManager</local-jndi-name> </ejb-local-ref> </jboss-web>
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1" xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.1"> <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1"> <dep:moduleId> <dep:groupId>org.apache.geronimo.samples</dep:groupId> <dep:artifactId>LoanManagerWeb</dep:artifactId> <dep:version>1.0</dep:version> <dep:type>car</dep:type> </dep:moduleId> <dep:dependencies/> <dep:hidden-classes/> <dep:non-overridable-classes/> </dep:environment> <naming:ejb-local-ref> <naming:ref-name>ejb/LoanManagerLocal</naming:ref-name> <naming:ejb-link>LoanManager</naming:ejb-link> </naming:ejb-local-ref> </web-app>
jboss-web.xml は、上記で指定された JNDI 名を使用している EJB と対応付けられ、geronimo-web.xml は EJB 名を直接使用します。互いにマッピングされているリファレンス名は、サーブレットから EJB を参照するために使用されます。WAR ファイルにある web.xml ファイルには、各 EJB リファレンス名に関するより詳細な情報を含んでいます。それは、このアプリケーションにおける Geronimo および JBoss の特徴に対する共通点です。
loan ディレクトリーから以下のコマンドを実行し、移行されたサンプル・アプリケーションの Geronimo バージョンをビルドしてください。
ant geronimo
loan/releases/geronimo フォルダーに Loan.ear が作成されます。
移行されたローン管理サンプル・アプリケーションをデプロイするには、Geronimo サーバーが始動され実行中であること、さらに、ユーザーがデータベースを操作しなければならないことを確認してください。その後、サンプル・アプリケーションをデプロイしてください。
このサンプル・アプリケーションでは、アプリケーション専用データを保持するための Geronimo システム・データベースをデフォルトで使用します。
Geronimo コンソールより、以下の手順にしたがってください。
ブラウザーより Geronimo コンソールを開き、以下の手順にしたがってください:
アプリケーションをテスト実行するには、Web ブラウザーを開いて、以下の URL へアクセスしてください。
ローンのステータスを変更するには、ユーザーは Web アプリケーションより ローンID を検索し、それをクライアント・アプリケーションへ下記のように指定する必要があります。
*java -jar LoanStatusChanger.jar <ローンId> <ステータス>*
上記のコマンドを実行する前に、以下の JAR ファイルがクラスパスに追加されていることを確認してください。
この文書は、BMP エンティティー・ビーンを使用しているサンプル・アプリケーションの JBoss v4.2.1 から Apache Geronimo への移行方法を記述しています。アプリケーションのビルド、配置、稼動の段階的な説明にしたがって Geronimo 環境へ移行してください。
次のリストは、このサンプル・アプリケーションの移行を通した、主な相違点をまとめています。
Bookmark this on Delicious Digg this | Privacy Policy - Copyright © 2003-2009, The Apache Software Foundation, Licensed under ASL 2.0. |