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