Il descrittore di distribuzione specifico di WebLogic per gli EJB, weblogic-ejb-jar.xml, potrebbe contenere nomi JNDI per i riferimenti locali EJB definiti in ejb-jar.xml. Tali riferimenti associano un riferimento locale EJB al relativo nome JNDI. Per il corretto funzionamento di tali riferimenti in WebSphere Application Server, è necessario spostare le informazioni nel file di bind di WebSphere Application Server.
Questa regola contrassegna i riferimenti locali EJB trovati nel file weblogic-ejb-jar.xml. Nello scanner di origine è fornita una correzione rapida. Una volta applicata la correzione rapida, l'XML WebLogic è contrassegnato con un commento che indica che è stata eseguita la migrazione. Viene utilizzato per determinare se eseguire la correzione rapida, e può essere utilizzato alla fine della migrazione per indicare quanto del file XML è stato migrato.
Quando viene applicata la correzione rapida, il nome JNDI è
copiato dal file weblogic-ejb-jar.xml al
file di collegamenti EJB tradizionale e Liberty di WebSphere.
Il seguente esempio mostra MyBean2 che definisce un riferimento a MyBean.
Innanzitutto, <ejb-local-ref> è definito nel file
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> |
Quindi, il nome JNDI <ejb-local-ref> corrispondente viene definito nel file
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> |
La correzione rapida aggiunge il nome JNDI ejb.MyBean al file di bind e lo associa al riferimento
locale ejb/MyBean per MyBean2.
Se il file di bind non esiste, viene creato.
All'interno del codice Java, è possibile fare riferimento al contesto di denominazione come nel seguente esempio:
|
javax.naming.Context ctx = new javax.naming.InitialContext(); Object beanRef = ctx.lookup("java:comp/env/ejb/MyBean"); |