Der JBoss-spezifische Implementierungsdeskriptor für EJBs, jboss.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 kennzeichnet lokale EJB-Referenzen, die in der jboss.xml datei gefunden werden, wenn die automatische Korrektur verfügbar ist, wird die XML-Datei JBoss 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, wie viel am Ende der Migration verwendet werden, um anzuzeigen, wie viel von der XML-Datei migriert wurde.
Wenn die automatische Korrektur verfügbar ist, wird der JNDI-Name aus der jboss.xml-Datei in die WebSphere 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 definiert:
< 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
jboss.xml definiert:
< jboss>
< span class= "indent2"> < /span> < enterprise-beans>
< span class= "indent4"> < /span> < session>
<ejb-name>MyBean</ejb-name>
<jndi-name>ejb.MyBean</jndi-name>
</session>
< span class= "indent4"> < /span> < session>
<ejb-name>MyBean2</ejb-name>
<jndi-name>ejb.MyBean2</jndi-name>
< span class= "indent4"> < /span> < span class="indent2"> < /span> < ejb-local-ref>
<ejb-ref-name>ejb/MyBean</ejb-ref-name>
< span class= "indent4"> < /span> $openspan class="indent4"> < /span> < local-jndi-name>ejb.MyBean< /jndi-name>
</ejb-local-ref>
</session>
</enterprise-beans>
</jboss>
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");