Descriptorul de implementare specific JBosspentru EJB-uri,
jboss.xml, ar putea conţine numele JNDI
pentru referinţe EJB locale definite în ejb-jar.xml.
Aceste referinţe mapează o referinţă EJB locală la numele său JNDI.
Pentru ca aceste referinţe să funcţioneze corect pe WebSphere Application Server,
informaţiile trebuie să fie mutate în
fişierul de legări WebSphere Application Server.
Această regulă semnalează referinţele EJB locale găsite în fişierul jboss.xml,
în cazul în care corecţia rapidă corespunzătoare din scanerul de sursă nu a fost deja aplicată. După ce este aplicată o corecţie rapidă, este marcat fişierul XML JBoss cu un comentariu care indică faptul că a fost migrat.
Acesta este folosit pentru a determina dacă rulaţi corecţia rapidă şi poate fi folosit la
sfârşitul migrării pentru a arăta cât de mult a fost migrat din fişierul XML.
Când este aplicată corecţia rapidă, numele JNDI este
copiat din fişierul jboss.xml în fişierul
de legări EJB WebSphere.
De exemplu, următorul exemplu arată MyBean2 care defineşte o referinţă la MyBean.
Mai întâi, este definit <ejb-local-ref> în fişierul
ejb-jar.xml:
< 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>Apatrid</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>Apatrid</session-type>
<transaction-type>Container</transaction-type>
< span class= "indent4" > < /span> < span class= "indent2" > < /span> < ejb-local-ref>
<description></description>
<ejb-ref-name>MyBean</ejb-ref-name>
<ejb-ref-type>Sesiune</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>
Apoi, este definit numele JNDI corespunzător <ejb-local-ref>
în
fişierul jboss.xml:
< 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>MyBean</ejb-ref-name>
< span class= "indent4" > < /span> < span class= "indent4" > < /span> < local-jndi-name>ejb.MyBean< /jndi-name>
</ejb-local-ref>
</session>
</enterprise-beans>
</jboss>
Corecţia rapidă adaugă numele JNDI ejb.MyBean la fişierul de legări şi
îl asociază cu referinţa locală ejb/MyBean pentru MyBean2.
Dacă nu există fişierul de legare, este creat unul.
În codul Java, contextul de numire poate fi referit ca în următorul exemplu:
< span class="Code"> < span class= "indent4" > < /span>javax.naming.Context ctx = new javax.naming.InitialContext();
Object beanRef = ctx.lookup("java:comp/env/ejb/MyBean");