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

Descriptorul de implementare specific WebLogic pentru EJB-uri, weblogic-ejb-jar.xml, poate conţine nume JNDI pentru referinţele locale EJB definite în ejb-jar.xml. Aceste referinţe mapează o referinţă locală EJB 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 locale EJB găsite în fişierul weblogic-ejb-jar.xml. În scanerul de sursă este furnizată o corecţie rapidă. După ce este aplicată corecţia rapidă, fişierul XML WebLogic este marcat cu un comentariu care indică migrarea sa. Acest lucru este folosit pentru a determina dacă să se ruleze corecţia rapidă şi poate fi folosite la sfârşitul migrării pentru a indica cât din fişierul XML a fost migrat.

Când este aplicată corecţia rapidă, numele JNDI este copiat din fişieru weblogic-ejb-jar.xml în fişierul de legări EJB WebSphere tradiţional şi Liberty. De exemplu, în următorul exemplu se arată cum MyBean2 defineşte o referinţă la MyBean. Mai întâi <ejb-local-ref> este definit î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, numele JNDI <ejb-local-ref> corespondent este definit în fişierul 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>

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ă fişierul de legări nu există, el este creat.

Î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");