No utilizar nombres JNDI locales

En las aplicaciones de WebLogic y JBoss, el elemento <local-jndi-name> define el nombre JNDI del inicio local del bean en el árbol JNDI global. Se define en el archivo weblogic-ejb-jar.xml o jboss.xml.

WebSphere(R) no permite correlacionar inicios locales con nombres JNDI en el árbol JNDI global. En su lugar, se correlacionan en el árbol de JNDI del contenedor local. Por este motivo, los programadores deben acceder a enterprise beans local utilizando una referencia de JNDI en el espacio de nombres local; no el nombre JNDI en el espacio de nombres global.

Esta regla se activa cuando se encuentra un elemento <local-jndi-name> en weblogic-ejb-jar.xml o en jboss.xml. La corrección automatizada procesará los archivos Java, los descriptores de despliegue y los enlaces para permitir que estas referencias funcionen en WebSphere.

Se procesan todos los paquetes relacionados con la aplicación en la que se encuentra el elemento <local-jndi-name>. Si el proyecto de aplicación empresarial de la aplicación no se encuentra o no está asociado con el proyecto EJB encontrado, sólo se procesa el proyecto EJB. Es importante que los proyectos relacionados estén correctamente definidos.

Cuando la corrección automática esté disponible y se haya aplicado, analizará todos los archivos Java de la aplicación en los que se encuentre el archivo <nombre-jndi-local>. Realiza una exploración para encontrar búsquedas de contexto directas al nombre JNDI local y realiza una exploración para encontrar búsquedas de la referencia de EJB de dicho nombre.

Por ejemplo, si el nombre JNDI local es ejb/myBeanLocalHome , los siguientes ejemplos de código desencadenan actualizaciones de código, descriptores de despliegue y enlaces, o ambos.

Ejemplos de búsqueda Java:

ctx.lookup("ejb/myBeanLocalHome");

ctx.lookup("java:comp/ejb/myBeanLocalHome");

ctx.lookup(myBeanLocalHomeNameVariable);

El código Java se cambia en el primer ejemplo por ctx.lookup("java:comp/ejb/myBeanLocalHome") para que se realice una búsqueda de referencias EJB. Los otros dos ejemplos de Java permanecen inalterados. En los tres casos, la corrección automática actualizará los descriptores de despliegue y los enlaces del proyecto.

Cuando se detecta una búsqueda al nombre JNDI local específico para un proyecto y cuando se utiliza una variable y la búsqueda no se puede determinar, el archivo web.xml o el archivo ejb-jar.xml se modifica para incluir un <ejb-local-ref> para el bean que ha definido el nombre JNDI local. En el caso de un proyecto EJB, se añade el elemento <ejb-local-ref> a cada bean definido en el archivo ejb-jar.xml. En el caso del archivo web.xml, se añade una referencia para el bean que ha definido el nombre JNDI local. Para ambos casos, se añade el nombre JNDI <ejb-local-ref> al archivo de enlaces correspondiente al proyecto.