ORACLE JAPAN Server Release 7.0

 

  |  

  WebLogic Server ホーム   |     エンタープライズ JavaBeans   |   前へ   |   次へ   |   目次   |   PDF 版

WebLogic Server コンテナ用の EJB のパッケージ化

 

以下の節では、WebLogic Server コンテナにデプロイするために EJB をパッケージ化する方法について説明します。ソース ファイル、デプロイメント記述子、およびデプロイメント モードを始めとしてデプロイメント パッケージの内容も説明します。

 


EJB のパッケージ化に必要な手順

WebLogic Server にデプロイするために EJB を EJB コンテナにパッケージ化するには、次の手順を実行します。

  1. EJB ソース ファイル コンポーネントを見直します。

  2. EJB デプロイメント ファイルを作成します。

  3. EJB デプロイメント記述子を編集します。

  4. デプロイメント モードを設定します。

  5. EJB コンテナ クラスを生成します。

  6. EJB を JAR または EAR ファイルにパッケージ化します。

  7. WebLogic Server へ EJB クラスをロードします。

 


EJB コンポーネント ソース ファイルの見直し

エンティティ Bean とセッション Bean を実装するには、以下のコンポーネントを使用します。

コンポーネント

説明

Bean クラス

Bean クラスは、Bean のビジネス メソッドとライフ サイクル メソッドを実装する。

リモート インタフェース

リモート インタフェースは、Bean の EJB コンテナに入っていないアプリケーションからアクセス可能な Bean のビジネス ロジックを定義する。

リモート ホーム インタフェース

リモート ホーム インタフェースは、Bean の EJB コンテナに入っていないアプリケーションからアクセス可能な Bean のライフ サイクル メソッドを定義する。

ローカル インタフェース

ローカル インタフェースは、同じ EJB コンテナに入っている他の Bean が使用可能な Bean のビジネス ロジックを定義する。

ローカル ホーム インタフェース

ローカル ホーム インタフェースは、同じ EJB コンテナに入っている他の Bean が使用可能な Bean のライフ サイクル メソッドを定義する。

主キー

主キーは、データベースのポインタを提供する。エンティティ Bean だけが主キーを必要とする。

 


WebLogic Server の EJB デプロイメント ファイル

EJB のデプロイメント記述子要素を指定するには、以下の WebLogic Server デプロイメントファイルを使用します。

Bean をコンパイルすると、デプロイメント ファイルは EJB デプロイメントの一部となります。XML デプロイメント記述子ファイルには、EJB に対するデプロイメント記述子の最低限の設定を含める必要があります。いったんファイルを作成すると、EJB デプロイメント記述子の指定と編集の手順に従って後で編集できます。デプロイメント記述子ファイルは、使用する各ファイルの文書型定義(DTD)のバージョンに準拠する必要があります。ファイルの文書型定義(DTD)には、EJB XML デプロイメント記述子ファイルのすべての要素および下位要素(属性)の名前を記述します。各ファイルの説明については、以下の節を参照してください。

ejb-jar.xml

ejb-jar.xml ファイルには、Sun Microsystems 固有の EJB DTD が格納されます。このファイルのデプロイメント記述子は、エンタープライズ Bean の構造を記述し、内部依存関係とアプリケーション アセンブリ情報を宣言します。アプリケーション アセンブリ情報とは、ejb-jar ファイルのエンタープライズ Bean をアプリケーション デプロイメント ユニットとしてアセンブルする方法を記述するものです。このファイルの要素の説明については、JavaSoft 仕様を参照してください。

weblogic-ejb-jar.xml

weblogic-ejb-jar.xml ファイルには、EJB のキャッシング、クラスタ化、およびパフォーマンスの各動作を定義する WebLogic Server 固有の EJB DTD が格納されます。また、使用可能な WebLogic Server リソースを EJB にマップする記述子も格納されます。WebLogic Server リソースには、セキュリティ ロール名、データ ソース(JDBC プールや JMS 接続ファクトリなど)、およびデプロイ済みの他の EJB があります。このファイルの要素の説明については、weblogic-ejb-jar.xml 文書型定義.を参照してください。

weblogic-cmp-rdbms.xml

weblogic-cmp-rdbms.xml ファイルには、コンテナ管理による永続性サービスを定義する WebLogic Server 固有の EJB DTD が格納されます。このファイルを使用して、コンテナがエンティティ Bean のインスタンス フィールドとデータベースのデータとの同期を処理する方法を指定します。このファイルの要素の説明については、weblogic-cmp-rdbms-jar.xml 文書型定義.を参照してください。

デプロイメント ファイル間の関係

weblogic-ejb-jar.xml 内の記述子は、ejb-jar.xml 内の EJB 名、動作中の WebLogic Server のリソース名、および weblogic-cmp-rdbms-jar.xml(コンテナ管理による永続性を使用するエンティティ EJB の場合)内に定義されている永続性タイプ データにリンクされています。次の図は、デプロイメント ファイルと WebLogic Server 間の関係を示しています。

図6-1 デプロイメント ファイルのコンポーネント間の関係

 


EJB デプロイメント記述子の指定と編集

以下のいずれかの方法で、EJB デプロイメント記述子を指定または編集します。

 


デプロイメント ファイルの作成

各ファイルの文書型定義(DTD)のバージョンに準拠した基本の XML デプロイメント ファイルを EJB 用に作成します。既存の EJB デプロイメント ファイルをテンプレートとして使用することも、WebLogic Server 配布キットの EJB サンプルからコピーすることもできます。

wlserver\samples\examples\ejb20

EJB デプロイメント記述子の手動編集

XML デプロイメント記述子要素を手動で編集するには、次の手順に従います。

  1. XML の形式の変更や、ファイルを無効にする可能性のある文字の挿入を行わない ASCII テキスト エディタを使用します。

  2. 編集する XML デプロイメント記述子ファイルを開きます。

  3. 変更を入力します。使用しているオペレーティング システムで大文字小文字が区別されない場合であっても、ファイル名やディレクトリ名の大文字小文字は正確に指定します。

  4. 省略可能な要素に対してデフォルト値を使用する場合は、要素の定義全体を省略するか、または次のように空白値を指定します。
    <max-beans-in-cache></max-beans-in-cache>

EJB デプロイメント記述子エディタの使用

WebLogic Server Administration Console で EJB デプロイメント記述子を編集するには、次の手順に従います。

  1. WebLogic Server を起動します。

  2. Administration Console を起動して、右ペインの [EJB] を選択します。

  3. 左ペインで、使用しているサーバ ドメインの [デプロイメント] ノードを選択します。

  4. [デプロイメント] ノードを展開し、[EJB] を選択します。

  5. 展開されたデプロイ済み EJB のリストから、編集する Bean を右クリックします。

  6. [EJB 記述子の編集...] をクリックします。

  7. EJB デプロイメント記述子エディタが表示されたら、選択した EJB をクリックしてノードを展開します。

    EJB デプロイメント記述子ファイルを表す以下の項目が表示されます。

  8. 編集するデプロイメント記述子のノードを展開します。

    選択したデプロイメント記述子ファイルの現在の設定が左ペインに表示されます。リストの項目を右クリックすると、その項目のダイアログ ウィンドウが右ペインに表示されます。

  9. 丸をクリックすると、さまざまな設定が右ペインのダイアログ ウィンドウに表示されます。

    ダイアログ ウィンドウの設定を変更すると、デプロイメント記述子を編集できます。

  10. フォルダをクリックすると、設定を表示するテーブルが右ペインに表示されます。

    通常、ここで新しい記述子をコンフィグレーションしたり、既存の設定を参照したりします。下線が付いている表の項目をクリックすると、設定を変更するためのダイアログが表示されます。

  11. 右ペインでデプロイメント記述子の項目を右クリックすると、記述子を削除することもできます。

注意: EJB デプロイメント記述子の詳細については、Administration Console のオンライン ヘルプまたはweblogic-ejb-jar.xml 文書型定義,weblogic-cmp-rdbms-jar.xml 文書型定義.を参照してください。

 


WebLogic Server デプロイメント モードの設定

次のいずれかの方法で、エンタープライズ アーカイブ ファイル(EAR)または EJB を WebLogic Server にデプロイします。

自動モードによるデプロイメント

自動モード デプロイメント オプションはデフォルトです。この機能は、開始時とサーバの実行中にアクティブなサーバのアプリケーション ディレクトリを自動的にポーリングして、EJB デプロイメントが変更されていないどうかを調べます。デプロイメントが変更されていた場合、サーバをポーリングしたときに自動的にデプロイされます。開発モードでは、デプロイする EJB または EAR の applications ディレクトリを使用します。デプロイ後、これらの EJB/EAR は config.xml ファイルに合わせて自動的に保持されます。

また、WebLogic Server は、EJB デプロイメントが変更されていないか調べるために、10 秒ごとに applications の内容をチェックします。デプロイメントが変更されていた場合、動的デプロイメント機能を使用して自動的に再デプロイされます。

EJB サンプルの自動デプロイ

WebLogic Server に付属の EJB サンプルは、wlserver\config\applications ディレクトリに自動的にデプロイされます。

プロダクション モードによるデプロイメント

プロダクション モード デプロイメント オプションは、自動デプロイメントを無効にします。プロダクション モード デプロイメントを有効にすると、config.xml ファイルで指定されたアプリケーションがサーバの起動時にデプロイされます。

このモードを有効にするには、コマンド ラインで次のコマンドを true に設定します。

-d production mode enabled true 

プロダクション モードの詳細については、『管理者ガイド』の startstop.html にある「コマンドラインからの WebLogic 管理サーバの起動」を参照してください。

 


デプロイメント ディレクトリへの EJB のパッケージ化

デプロイメント プロセスは、EJB プロバイダによって作成されたコンパイル済み EJB インタフェースと実装クラスを格納する JAR ファイルまたはデプロイメント ディレクトリで開始されます。JAR ファイルとデプロイメント ディレクトリは、どちらがコンパイル済みクラスを格納している場合でも、Java パッケージ構造と一致するサブディレクトリに入っている必要があります。

また、EJB プロバイダが、付属の EJB を記述する EJB 準拠の ejb-jar.xml ファイルを提供する必要があります。ejb-jar.xml ファイルとその他に必要な XML デプロイメント ファイルの場所は、JAR またはデプロイメント ディレクトリの META-INF サブディレクトリの最上位でなければなりません。次の図は、EJB とデプロイメント記述子ファイルをデプロイメント ディレクトリまたは JAR ファイルにパッケージ化する作業の第 1 段階を示しています。

図6-2 デプロイメント ディレクトリへの EJB クラスとデプロイメント記述子のパッケージ化


 

基本の JAR またはデプロイメント ディレクトリは、そのまま WebLogic Server にデプロイすることができません。まず、weblogic-ejb-jar.xml ファイルの WebLogic 固有のデプロイメント記述子要素を作成してコンフィグレーションし、そのファイルをデプロイメント ディレクトリまたは ejb.jar ファイルに追加します。デプロイメント記述子ファイルの作成手順については、WebLogic Server の EJB デプロイメント ファイルを参照してください。

コンテナ管理の永続性を使用するエンティティ EJB をデプロイする場合は、Bean の永続性タイプに対応する WebLogic 固有のデプロイメント記述子要素も追加する必要があります。通常、WebLogic Server のコンテナ管理による永続性(CMP)サービスの場合、ファイルの名前は weblogic-cmp-rdbms-jar.xml です。CMP を使用する Bean ごとに別々のファイルが必要です。サードパーティの永続性ベンダを使用する場合は、weblogic-cmp-rdbms-jar.xml とは内容だけでなくファイル タイプも異なることがあるので、詳細については、永続性ベンダのマニュアルを参照してください。

EJB に必要なデプロイメント記述子ファイルがない場合は、手動で作成しなければなりません。既存のファイルをコピーした上で、必要に応じて EJB の設定を編集する方法が最も簡単です。ファイルを作成するには、EJB デプロイメント記述子の指定と編集の手順に従います。

ejb.jar ファイル

ejb.jar ファイルを作成するには、Java Jar ユーティリティ(javac)を使用します。このユーティリティは、EJB クラスとデプロイメント記述子を、ディレクトリ構造を保持する 1 つの Java アーカイブ(JAR)ファイルにまとめます。ejb-jar ファイルが、WebLogic Server にデプロイするユニットとなります。

 


EJB クラスのコンパイルと EJB コンテナ クラスの生成

デプロイメント ユニットの作成手順の一部として、EJB クラスをコンパイルし、デプロイメント記述子をデプロイメント ユニットに追加し、デプロイメント ユニットにアクセスするためのコンテナ クラスを作成する必要があります。

  1. コマンド ラインから javac コンパイラを使用して、EJB クラスをコンパイルします。

  2. WebLogic Server の EJB デプロイメント ファイルのガイドラインに従って、適切な XML デプロイメント記述子ファイルをコンパイル済みユニットに追加します。

  3. ejbc を使用して、Bean にアクセスするためのコンテナ クラスを生成します。

    コンテナ クラスには、WebLogic Server が使用する EJB の内部表現に加えて、クライアントが使用する外部インタフェース(ホーム、ローカル、またはリモート)の実装も格納されます。

ejbc コンパイラは、WebLogic 固有の XML デプロイメント記述子ファイルで指定した XML デプロイメント記述子ファイルに従ってコンテナ クラスを生成します。たとえば EJB をクラスタで使用するよう指定した場合、ejbc は、そのデプロイメント用の特別なクラスタ対応クラスを作成します。

また、コマンド ラインから ejbc を直接使用して、必要なオプションと引数を指定することもできます。詳細については、ejbcを参照してください。

次の図は、JAR ファイルの作成時にデプロイメント ユニットに追加されるコンテナ クラスを示しています。

図6-3 EJB コンテナ クラスの生成


 
 

デプロイメント ユニットの作成後、JAR、EAR、または WAR アーカイブのいずれかとしてファイル拡張子を指定できます。

 


WebLogic Server への EJB クラスのロード

Weblogic Server のクラスローダは階層的です。WebLogic Server の起動時に、Java システム クラスローダはアクティブになり、その後に WebLogic Server が作成するすべてのクラスローダの親になります。WebLogic Server では、アプリケーションをデプロイするときに、EJB 用と Web アプリケーション用の 2 つの新しいクラスローダを作成します。EJB クラスローダは Java システム クラスローダの子、Web アプリケーション クラスローダは EJB クラスローダの子です。

クラスローダの詳細については、『WebLogic Server アプリケーションの開発』の「クラスローダの概要」と「アプリケーションのクラスローダ」を参照してください。

 


ejb-client.jar の指定

WebLogic Server では、ejb-client.jar ファイルを使用できます。ejb-client.jar ファイルを作成するには、この機能を Bean の ejb-jar.xml デプロイメント記述子ファイルを指定してから、weblogic.ejbc を使用して ejb-client.jar ファイルを生成します。ejb-client.jar には、ejb-jar ファイルの EJB を呼び出すためにクライアント プログラムに必要なクラス ファイルが格納されます。これらのファイルは、クライアントをコンパイルするために必要なクラスです。この機能を指定した場合、WebLogic Server は ejb-client.jar を自動的に作成します。

ejb-client.jar を指定するには、次の手順に従います。

  1. コマンド ラインから javac コンパイラを使用して、Bean の Java クラスをディレクトリにコンパイルします。

  2. WebLogic Server の EJB デプロイメント ファイルのガイドラインに従って、EJB XML デプロイメント記述子ファイルをコンパイル済みユニットに追加します。

  3. Bean の ejb-jar.xml ファイルの ejb-client-jar デプロイメント記述子を次のように編集して、ejb-client.jar のサポートを指定します。
    <ejb-client-jar>ShoppingCartClient.jar</ejb-client-jar>

  4. weblogic.ejbc を使用して Bean にアクセスするためのコンテナ クラスを作成し、次のコマンドを使用して ejb-client.jar を作成します。
    $ java weblogic.ejbc <ShoppingCart.jar>
    <ShoppingCart.jar>

    コンテナ クラスには、WebLogic Server が使用する EJB の内部表現に加えて、クライアントが使用する外部インタフェース(ホーム、ローカル、またはリモート)の実装も格納されます。

ejb-client.jar には、エンティティ Bean のホーム インタフェース、リモート インタフェース、および主キー クラスが必ず格納されます。また、これらのインタフェースが参照する ejb-jar ファイルのすべてのクラスのコピーも格納されます。たとえば、ShoppingCart リモート インタフェースが Item クラスを返すメソッドを持っているとします。このリモート インタフェースはこのクラスを参照し、ejb-jar ファイルに入っているので、EJB client.jar に含まれます。

外部クライアントは、ejb-client.jar をそれぞれのクラスパスに含めます。Web アプリケーションは、ejb-client.jar\lib ディレクトリに含めます。

 


マニフェスト クラスパス

JAR ファイルが別の JAR ファイルを参照できるかどうかを指定するには、マニフェスト ファイルを使用します。スタンドアロン EJB ではマニフェスト クラスパスを使用できません。マニフェスト クラスパスは、EAR ファイル内にデプロイされているコンポーネントに対してのみサポートされています。クライアントは、マニフェスト ファイルのクラスパス エントリにある client.jar を参照します。

マニフェスト ファイルを使用して別の JAR ファイルを参照するには、次の手順に従います。

  1. 参照先 JAR ファイルの名前を、参照元 JAR ファイルのマニフェスト ファイルの Class-Path ヘッダに指定します。

    参照先 JAR ファイルの名前には、参照元 JAR ファイルの URL を基準にした URL を使用します。

  2. マニフェスト ファイル、META-INF/MANIFEST.MF を JAR ファイルに指定します。

  3. マニフェスト ファイルの Class-Path エントリは次のようになります。

    Class-Path: AAyy.jar BByy.jar CCyy.jar.

注意: このエントリは、スペース区切りの JAR ファイル リストです。

EJB のホーム/リモート インタフェースを呼び出し側コンポーネントのクラスパスに配置するには、次の手順に従います。

  1. ejbc を使用して、EJB を JAR ファイルにコンパイルします。

  2. client.jar ファイルを作成します。client.jar の使用方法については、ejb-client.jar の指定を参照してください。

  3. client.jar を Bean のすべてのクライアントと一緒に EAR に配置します。

  4. EAR をマニフェスト ファイルで参照します。

 

back to top previous page next page