EJB の WebLogic 固有のデプロイメント記述子 weblogic-ejb-jar.xml に、 ejb-jar.xml で定義された EJB ローカル参照の JNDI 名が含まれることがあります。 これらの参照は EJB ローカル参照をその JNDI 名にマップします。 WebSphere Application Server 上でこれらの参照が正しく作動するには、情報を WebSphere Application Server のバインディング・ファイルに移動しなければなりません。
この規則は、weblogic-ejb-jar.xml ファイルで検出される EJB ローカル参照にフラグを立てます。ソース・スキャナーでは、クイック・フィックスが提供されます。クイック・フィックスが適用された後、WebLogic XML には、マイグレーション済みであることを示すコメントによってマークが付けられます。このコメントは、クイック・フィックスを実行するかどうかを判別するのに使用され、またマイグレーション終了時にマイグレーション済みの XML ファイルがどれだけあるかを示すのに使用できます。
クイック・フィックスが適用されると、JNDI 名が weblogic-ejb-jar.xml ファイルから WebSphere traditional および Liberty EJB バインディング・ファイルにコピーされます。例えば、以下の例では、MyBean への参照を定義している MyBean2 を示しています。
まず、ejb-jar.xml ファイルで <ejb-local-ref> が定義されます。
|
<ejb-jar> <enterprise-beans> <session> <display-name>MyBean</display-name> <ejb-name>MyBean</ejb-name> <home>com.ibm.ejb.MyBeanHome</home> <remote>com.ibm.ejb.MyBean</remote> <ejb-class>com.ibm.ejb.MyBeanBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> <jndi-name>ejb.MyBean</ejb-name> ... </session> <session> <display-name>MyBean2</display-name> <ejb-name>MyBean2</ejb-name> <home>com.ibm.ejb.MyBean2Home</home> <remote>com.ibm.ejb.MyBean2</remote> <ejb-class>com.ibm.ejb.MyBean2Bean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> <ejb-local-ref> <description></description> <ejb-ref-name>ejb/MyBean</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local-home>com.ibm.ejb.MyBeanHome</local-home> <local>com.ibm.ejb.MyBean</local> </ejb-local-ref> <jndi-name>ejb.MyBean2</ejb-name> ... </session> <enterprise-beans> <ejb-jar> |
次に、対応する <ejb-local-ref> JNDI 名が
weblogic-ejb-jar.xml ファイルで定義されます。
|
<weblogic-ejb-jar> <weblogic-enterprise-bean> <ejb-name>MyBean</ejb-name> <jndi-name>ejb.MyBean</jndi-name> </weblogic-enterprise-bean> <weblogic-enterprise-bean> <ejb-name>MyBean2</ejb-name> <ejb-local-reference-description> <ejb-ref-name>ejb/MyBean</ejb-ref-name> <jndi-name>ejb.MyBean</jndi-name> </ejb-local-reference-description> <jndi-name>ejb.MyBean2</jndi-name> </weblogic-enterprise-bean> </weblogic-ejb-jar> |
クイック・フィックスでは、ejb.MyBean という JNDI 名をバインディング・ファイルに追加し、
MyBean2 の ejb/MyBean というローカル参照と関連付けます。
バインディング・ファイルがない場合は作成されます。
Java コード内で、ネーミング・コンテキストは、次の例のようにして参照できます。
|
javax.naming.Context ctx = new javax.naming.InitialContext(); Object beanRef = ctx.lookup("java:comp/env/ejb/MyBean"); |