メッセージ駆動型 Bean の JNDI 名の定義に WebSphere バインディングを使用する

message-driven-descriptor は、メッセージ・リスナーの宛先を構成します。 メッセージ宛先参照は、メッセージの宛先として機能する EJB モジュール内のエンタープライズ Bean を見つけるために使用する論理名です。 メッセージ宛先参照は、以下に示すような、J2EE 1.4 およびそれ以降の成果物にのみ存在します。

複数のメッセージ宛先参照が単一のメッセージ宛先リンクに関連付けられている場合、メッセージ宛先リンクにマップする (そしてその結果、 リンク先のすべてのメッセージ宛先参照にマップする) エンタープライズ Bean を示す単一の JNDI 名がデプロイメントの際に収集されます。 実行時に、メッセージ宛先参照はターゲットの稼働環境で管理対象のメッセージ宛先にバインドされます。 メッセージ宛先参照およびメッセージ駆動型 Bean が同じメッセージ宛先によってリンクされている場合は、 参照および Bean の両方に同じ宛先 JNDI 名がなければなりません。 両方に同じ名前があるとき、メッセージ駆動型 Bean の宛先 JNDI 名のみが収集されて、対応するメッセージ宛先参照に適用されます。 デプロイヤーがアプリケーションのインストール時にデフォルト・バインディングを生成することを選択した場合、 インストール・ウィザードは JNDI 名を以下の不完全なメッセージ宛先参照に割り当てます。
メッセージ宛先参照に < message-destination-link> がある場合、JNDI 名は以下のように設定されます。 ejs/message-destination-linkName そうでない場合、JNDI 名は次のように設定されます。 eis/message-destination-refName .

この規則は、メッセージ駆動型 Bean の宛先 JNDI 名を検出します。 自動化された修正は、コピー先のJNDI名を weblogic-ejb-jar.xml ファイルから WebSphere(R ) Application Server バインディングファイルにコピーします。 しかし、自動化された修正では、 ActivationSpec JNDI名の設定や、 ejb-jar.xml のアクティブ化構成プロパティの移行は行われない。

Liberty 用の手動での解決方法


WebSphere traditional 用の手動での解決方法

アプリケーション開発者は、EJB 3.0 および Web 2.5 モジュールの ibm-xxx-bnd.xml ファイル、 および Java(R) Platform の Enterprise Edition (Java EE) 5 より前に存在したモジュールの ibm-xxx-bnd.xmi ファイルに、 バインディング定義を作成できます。 アプリケーション開発者は、IBM(R) Rational(R) Developer ツールなどのツールを使用して、 または EJB 3.0 や Web 2.5 モジュールでは XML エディターやテキスト・エディターを使用して、ファイルを作成できます。 開発者はその後、バインディングが完了しているエンタープライズ・アプリケーション (.ear ファイル) を、 アプリケーションのアセンブラーまたはデプロイヤーに付与します。 アプリケーションをアセンブルする場合、アセンブラーはバインディングを変更しません。 同じように、WebSphere Application Server でサポートされるサーバーにアプリケーションをインストールするとき、 アプリケーションを正常にデプロイするためにバインディングを変更する必要がある場合を除いて、 デプロイヤーはバインディングを変更またはオーバーライドしたりデフォルトのバインディングを生成したりしません。

Rational Application Developer for EJB 2.1 の Bean に必要な変更を行うには、以下のアクションを完了します。
  1. アセンブリー・ツールの Rational Application Developer を開始します。
  2. 正しい EJB プロジェクトを開きます。
  3. デプロイメント記述子をダブルクリックします。
  4. 正しいメッセージ駆動型 Bean をクリックします。
  5. 「WebSphere バインディング」セクションにスクロールダウンします。
  6. 「JCA アダプター」チェック・ボックスを選択して、ActivationSpec JNDI 名を入力します。


EJB 2.0 Bean の管理コンソールで必要な変更を行うには、以下のアクションを完了してください。 Rational Application Developer バージョン 7.0 は、EJB 2.0 Bean 用の EJB 2.1 活動化仕様の設定をサポートしていません。 EJB 2.1 活動化仕様は EJB 2.1 Bean 用にのみ設定できます。
  1. アプリケーションを WebSphere Application Server にデプロイするとき、管理コンソールを使用して MDB 用に活動化仕様を設定します。
  2. 管理コンソールから、アプリケーション用の EAR ファイルをエクスポートします。
  3. デプロイメント記述子を EAR ファイルからプロジェクトにコピーして、プロジェクトが正しい活動化仕様を持つようにします。

アプリケーションのアセンブル時にバインディングを定義する

アプリケーション・アセンブラーは、 アプリケーションのアノテーションまたはデプロイメント記述子でバインディングを定義することができます。 Java EE 5 モジュールは、ソース・コード内にアノテーションを含みます。 アプリケーション・アセンブラーは、アノテーションを宣言するためにキーワードの先頭に @ 文字を付けます。 Java EE 5 より前のモジュールのバインディングは、デプロイメント記述子エディターの「WebSphere バインディング」セクションに指定されます。 デプロイメント記述子を変更すると、アプリケーションの開発時に作成されるバインディング・ファイルでのバインディング定義が変更されることがあります。 バインディングの定義後、 アセンブラーはアプリケーションをデプロイヤーに渡します。 WebSphere Application Server でサポートされるサーバーにアプリケーションをインストールするとき、 アプリケーションをデプロイするためにバインディングを変更する必要がある場合を除いて、 デプロイヤーはバインディングを変更またはオーバーライドしたりデフォルトのバインディングを生成したりしません。


アプリケーションのインストール時にバインディングを定義する

アプリケーション・デプロイヤーまたはサーバー管理者は、管理コンソールを使用して WebSphere Application Server でサポートされるサーバー上にアプリケーションをインストールするときに、 バインディングを変更できます。 新規バインディング定義は、インストール・ウィザード・ページで指定することができます。
さらに、デプロイヤーまたは管理者は、アプリケーションのインストール時にデフォルト・バインディングを生成するという選択もできます。 アプリケーションのインストール時にデフォルト・バインディングを生成するように選択すると、 製品はデフォルト値を使用してアプリケーション内でバインディングを完了するように指示を受けます。 既存のバインディングは変更されません。
制限: アプリケーション・クライアントのアプリケーションをインストールする際には、バインディングを定義したりオーバーライドしたりできません。 アプリケーション・クライアント・モジュールのバインディングはアセンブリー時に定義する必要があり、 そのバインディングをバインディング・ファイルに保管する必要があります。


アプリケーション・インストールの構成時にバインディングを定義する

アプリケーションが WebSphere Application Server でサポートされるサーバーにインストールされた後、アプリケーション・デプロイヤーまたはサーバー管理者は、エンタープライズ・アプリケーション用の設定ページからアクセスされるものなど、 管理コンソールのページの値を変更することによってバインディングを変更できます。