Der WebLogic-spezifische Implementierungsdeskriptor für EJBs,
weblogic-ejb-jar.xml, kann JNDI-Namen für
lokale EJB-Referenzen enthalten, die in ejb-jar.xml definiert sind.
Diese Referenzen ordnen eine lokale EJB-Referenz dem entsprechenden JNDI-Namen zu.
Damit diese Referenzen ordnungsgemäß in WebSphere Application Server funktionieren, müssen
Informationen in die
Bindungsdatei von WebSphere Application Server umgesetzt werden.
Diese Regel markiert lokale EJB-Referenzen, die in der Datei weblogic-ejb-jar.xml gefunden werden.
Es wird eine automatische Lösung bereitgestellt. Nachdem die automatische Korrektur wird die XML-Datei WebLogic mit einem Kommentar versehen, der anzeigt, dass sie migriert wurde.
Dies wird verwendet, um festzustellen, ob die automatische Korrektur durchgeführt werden soll, und kann am Ende der Migration verwendet werden, um anzuzeigen am Ende der Migration verwendet werden, um anzuzeigen, wie viel von der XML-Datei migriert wurde.
Wenn die automatische Korrektur angewendet wird, wird der JNDI-Name aus der weblogic-ejb-jar.xml-Datei in die WebSphere traditionellen und Liberty EJB-Bindungsdatei kopiert.
Das folgende Beispiel zeigt beispielsweise die Bean "MyBean2", die eine Referenz auf "MyBean" definiert.
Zunächst wird die <ejb-local-ref> in der ejb-jar.xml-Datei:
< span class="Code"> < ejb-jar>
< span class= "indent2"> < /span> < enterprise-beans>
< span class= "indent4"> < /span> < 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>Statusunabhängig</session-type>
<transaction-type>-Container</transaction-type>
< span class= "indent4"> < /span> < span class="indent2"> < /span> < JNDI-Name>ejb.MyBean< /ejb-name>
...
</session>
< span class= "indent4"> < /span> < 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>Statusunabhängig</session-type>
<transaction-type>-Container</transaction-type>
< span class= "indent4"> < /span> < span class="indent2"> < /span> < ejb-local-ref>
<description></description>
<ejb-ref-name>ejb/MyBean</ejb-ref-name>
<ejb-ref-type>Sitzung</ejb-ref-type>
<local-home>com.ibm.ejb.MyBeanHome</local-home>
<local>com.ibm.ejb.MyBean</local>
</ejb-local-ref>
< span class= "indent4"> < /span> < span class="indent2"><jndi-name>ejb.MyBean2</ejb-name>
...
</session>
< span class= "indent2"> < /span> < enterprise-beans>
< ejb-jar>
Dann wird der entsprechende JNDI-Name <ejb-local-ref> in
der Datei
weblogic-ejb-jar.xml definiert:
< weblogic-ejb-jar>
< span class= "indent2"> < /span> < weblogic-enterprise-bean>
<ejb-name>MyBean</ejb-name>
<jndi-name>ejb.MyBean</jndi-name>
</weblogic-enterprise-bean>
< span class= "indent2"> < /span> < weblogic-enterprise-bean>
<ejb-name>MyBean2</ejb-name>
< span class= "indent4"> < /span> < 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>
Die automatische Korrektur fügt den ejb.MyBean JNDI-Namen in die Bindungsdatei ein und assoziiert ihn mit der ejb/MyBean lokalen Referenz für MyBean2.
Falls die Bindungsdatei nicht vorhanden ist, wird sie erstellt.
In Java-Code kann der Namenskontext wie im folgenden Beispiel beschrieben referenziert werden:
< span class="Code"> < span class= "indent4"> < /span>javax.naming.Context ctx = new javax.naming.InitialContext();
Object beanRef = ctx.lookup("java:comp/env/ejb/MyBean");