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.
Verrà fornita una soluzione automatica. Dopo l'applicazione della correzione automatica l'XML di WebLogic è contrassegnato da un commento che indica che è stato migrato.
Viene utilizzato per determinare se eseguire la correzione automatica e può essere utilizzato alla fine della migrazione per indicare la quantità di file XML alla fine della migrazione per indicare quanta parte del file XML è stata migrata.
Quando si applica la correzione automatica, il nome JNDI viene copiato dal file weblogic-ejb-jar.xml al file di binding EJB tradizionale e WebSphere tradizionale e al file dei binding EJB di Liberty.
Il seguente esempio mostra MyBean2 che definisce un riferimento a MyBean.
Per prima cosa, il <ejb-local-ref> è definito nel file 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>Senza stato</session-type>
<transaction-type>Contenitore</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>Senza stato</session-type>
<transaction-type>Contenitore</transaction-type>
< span class= "indent4"> < /span> < span class= "indent2"> < /span> < ejb - local - ref>
<description></description>
<ejb-ref-name>ejb /MyBean</ejb-ref-name>
<ejb-ref-type>Sessione</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>
< jar-ejb>
Quindi, il nome JNDI <ejb-local-ref> corrispondente viene definito nel file
weblogic-ejb-jar.xml:
< ejb - weblog>
< span class= "indent2"> < /span> < weblogic - enterprise - bean>
<ejb-name>MyBean</ejb-name>
<jndi-name>ejb.MyBean</jndi-name>
</weblogic-enterprise-bean>
< span class= "indent2"> < /span> < weblogic - enterprise - bean>
<ejb-name>MyBean2</ejb-name>
< span class= "indent4"> < /span> < 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 automatica aggiungerà il nome ejb.MyBean Nome JNDI al file dei vincoli e lo lo associa al riferimento ejb/MyBean al riferimento locale 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:
< span class="Code"> < span class= "indent4"> < /span>javax.naming.Context ctx = new javax.naming.InitialContext();
Object beanRef = ctx.lookup("java:comp/env/ejb/MyBean");