Utilizar enlaces de WebSphere para definir nombres JNDI de referencia local de EJB

El descriptor de despliegue de JBoss para los EJB, jboss.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 EJB que se encuentran en el archivo jboss.xml archivo, cuando la corrección automatizada esté disponible, el XML de JBoss se marcará con un comentario indicando que se ha migrado. Se utiliza para determinar si se debe ejecutar la corrección automática, y se puede utilizar al final de la migración para indicar cuánto se ha migrado del archivo XML al final de la migración para indicar qué parte del archivo XML se ha migrado.

Cuando la corrección automatizada esté disponible, el nombre JNDI se copiado del archivo jboss.xml al archivo de WebSphere EJB. Considere el ejemplo siguiente en el que MyBean2 define una referencia a MyBean. En primer lugar, se define el <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 jboss.xml:


< jboss>
< span class= "indent2"> < /span> < enterprise-beans>
< span class= "indent4"> < /span> < sesión>
<ejb-name>MyBean</ejb-name>
<jndi-name>ejb.MyBean</jndi-name>
</session>
< span class= "indent4"> < /span> < sesión>
<ejb-name>MyBean2</ejb-name>
<jndi-name>ejb.MyBean2</jndi-name>
< span class= "indent4"> < /span> < span class="indent2"> < /span> < ejb-local-ref>
<ejb-ref-name>ejb/MyBean</ejb-ref-name>
< span class= "indent4"> < /span> < span class="indent4"> < /span> < local-jndi-name>ejb.MyBean< /jndi-name>
</ejb-local-ref>
</session>
</enterprise-beans>
</jboss>

La corrección automática añadirá el nombre ejb.MyBean Nombre JNDI al archivo bindings y lo lo asociará con la ejb/MyBean referencia local 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");