El descriptor de despliegue de WebLogic para los EJB, weblogic-ejb-jar.xml, puede contener nombres JNDI para las
referencias locales de EJB definidas en ejb-jar.xml.
Estas
referencias correlacionan una referencia local de EJB con su nombre JNDI.
Para que estas referencias funcionen correctamente en WebSphere Application Server,
se debe pasar información al archivo de enlaces de WebSphere
Application Server.
Esta regla marca las referencias locales de EJB encontradas en el archivo weblogic-ejb-jar.xml.
Hay un arreglo rápido disponible en el explorador de orígenes. Después de aplicar el arreglo rápido, el XML de WebLogic se
marca con un comentario para indicar que se ha migrado.
Éste se utiliza para determinar si se debe ejecutar el arreglo rápido y se puede utilizar al final de la migración para indicar qué parte del archivo XML se ha migrado.
Cuando se aplica el arreglo rápido, el nombre JNDI se copia desde el archivo
weblogic-ejb-jar.xml al archivo de enlaces EJB de WebSphere
tradicional y Liberty.
Considere
el ejemplo siguiente en el que MyBean2 define una referencia a MyBean.
En primer lugar, se define <ejb-local-ref> en el archivo ejb-jar.xml:
< span class="Code"> < ejb-jar>
< span class= "indent2"> < /span> < enterprise-beans>
< span class= "indent4"> < /span> < sesión>
<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>Sin estado</session-type>
<transaction-type>Contenedor</transaction-type>
< span class= "indent4"> < /span> < span class="indent2"> < /span> < nombre_jndi>ejb.MyBean< /ejb-name>
...
</session>
< span class= "indent4"> < /span> < sesión>
<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>Sin estado</session-type>
<transaction-type>Contenedor</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>Sesión</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>
< ejb-jar>
A continuación, se define el nombre JNDI correspondiente de
<ejb-local-ref> en el archivo weblogic-ejb-jar.xml:
< jar_ejb-weblogic >
< 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>
El arreglo rápido añade el nombre JNDI ejb.MyBean al archivo de enlaces
y lo asocia a la referencia local ejb/MyBean para MyBean2.
Si el archivo de enlace no existe, se crea uno.
Dentro del código Java, se puede referenciar el contexto de denominación como se
muestra en el ejemplo siguiente:
< span class="Code"> < span class= "indent4"> < /span>javax.naming.Context ctx = new javax.naming.InitialContext();
Object beanRef = ctx.lookup("java:comp/env/ejb/MyBean");