WebLogic および JBoss アプリケーション内で、<local-jndi-name> エレメントは、グローバル JNDI ツリー内の Bean のローカル・ホームの JNDI 名を定義します。これは、weblogic-ejb-jar.xml ファイルまたは jboss.xml ファイル内で定義されます。
WebSphere(R) では、グローバル JNDI ツリー内の JNDI 名に対するローカル・ホームのマッピングを行うことができません。代わりに、これらはローカル・コンテナーの JNDI ツリー内にマップされます。このため、プログラマーは、グローバル名前空間の JNDI 名ではなく、ローカル名前空間の JNDI 参照を使用して、ローカル・エンタープライズ Bean にアクセスしなければなりません。
この規則は、weblogic-ejb-jar.xml または jboss.xml 内に <local-jndi-name> エレメントがある場合に起動されます。ソース・スキャナーでクイック・フィックスが使用可能です。クイック・フィックスは、Java ファイル、デプロイメント記述子、およびバインディングを処理し、これらの参照を WebSphere 上で機能できるようにします。
<local-jndi-name> エレメントがあるアプリケーションに関連したパッケージがすべて処理されます。アプリケーション EAR プロジェクトがないか、見つかった EJB プロジェクトに関連付けられていない場合は、EJB プロジェクトのみが処理されます。関連したプロジェクトが正しく定義されている必要があります。
ソース・スキャナーでのクイック・フィックスの実行時に、<local-jndi-name> があるアプリケーション内の Java ファイルがすべてスキャンされます。ローカル JNDI 名の直接コンテキスト・ルックアップと、この名前への EJB 参照のルックアップがスキャンされます。
例えば、ローカル JNDI 名が ejb/myBeanLocalHome の場合、以下のコード例はコード、デプロイメント記述子とバインディング、またはその両方に対する更新を起動します。|
ctx.lookup("ejb/myBeanLocalHome"); ctx.lookup("java:comp/ejb/myBeanLocalHome"); ctx.lookup(myBeanLocalHomeNameVariable); |
EJB 参照のルックアップができるようにするには、最初の例の Java コードを ctx.lookup("java:comp/ejb/myBeanLocalHome") に変更します。他の 2 つの Java の例は変更されません。3 つのすべての例で、クイック・フィックスはプロジェクトのデプロイメント記述子とバインディングを更新します。
プロジェクトで特定のローカル JNDI 名に対するルックアップが検出される場合や、変数が使用されていてルックアップを判別できない場合は、web.xml ファイルまたは ejb-jar.xml ファイルを変更して、ローカル JNDI 名を定義した Bean に <ejb-local-ref> を組み込みます。EJB プロジェクトの場合は、ejb-jar.xml 内で定義されている各 Bean に <ejb-local-ref> エレメントが追加されます。web.xml ファイルの場合は、ローカル JNDI 名を定義している Bean について 1 つの参照が追加されます。両方の場合とも、プロジェクトのバインディング・ファイルに <ejb-local-ref> JNDI 名が追加されます。