Utilizaţi legările WebSphere pentru a defini numele JNDI de referinţe locale EJB

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:

<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>

Apoi, este definit numele JNDI corespunzător <ejb-local-ref> în fişierul jboss.xml:


<jboss>
<enterprise-beans>
<session>
<ejb-name>MyBean</ejb-name>
<jndi-name>ejb.MyBean</jndi-name>
</session>
<session>
<ejb-name>MyBean2</ejb-name>
<jndi-name>ejb.MyBean2</jndi-name>
<ejb-local-ref>
<ejb-ref-name>ejb/MyBean</ejb-ref-name>
<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:

javax.naming.Context ctx = new javax.naming.InitialContext();
Object beanRef = ctx.lookup("java:comp/env/ejb/MyBean");