En Liberty anterior a la versión 20.0.0.12, los beans Enterprise JavaBeans (EJB) están enlazados solo al espacio de nombres java:[scope]. Los beans EJB no estaban enlazados a un espacio de nombres Java Naming and Directory Interface (JNDI) raíz del servidor, lo que significa que no se han podido definir los nombres de enlace JNDI. Los atributos de enlaces EJB que le permite especificar el nombre JNDI en WebSphere Application Server tradicional se han ignorado en Liberty.
Los siguientes atributos de enlaces EJB del archivo ibm-ejb-jar-bnd.xml se han ignorado en Liberty.
session simple-binding-namesession component-idsession local-home-binding-namesession remote-home-binding-nameinterface binding-nameLos siguientes atributos de enlace EJB del archivo ibm-ejb-jar-bnd.xmi se han ignorado en Liberty.
ejbBindings jndiNameEsta regla señala todos los nombres de enlace JNDI que se han ignorado en Liberty antes de 20.0.0.12. Si la aplicación utiliza estos nombres en búsquedas JNDI directas en lugar de utilizando referencias EJB, debe utilizar la versión de Liberty 20.0.0.12 o posterior, o modificar la aplicación.
Si utiliza referencias EJB, la regla
Cambio de comportamiento en búsquedas de Enterprise JavaBeans en versiones anteriores de Liberty señala todos los nombres JNDI que se deben convertir al espacio de nombres java: si se utiliza una versión de Liberty anterior a la versión 20.0.0.12.
Si no utiliza referencias EJB y está utilizando una versión de Liberty anterior a la versión 20.0.0.12, se recomienda utilizar una versión más reciente de Liberty o crear una referencia EJB utilizando el mismo nombre JNDI y establecer la referencia EJB binding-name en el nombre JNDI java:[scope]. Si no añade una referencia EJB, debe explorar en el código Java el uso de estos nombres JNDI y convertir el nombre de búsqueda al nombre JNDI java:.
El siguiente ejemplo crea una referencia EJB para ayudar a migrar cualquier problema de búsqueda si no está utilizando la versión de Liberty 20.0.0.12 o posterior.
EJB referenciado:
Interfaz remota:
A continuación, se muestran ejemplos sobre cómo declarar una referencia de EJB en Liberty. 1a o 1b son necesarios en conjunción de 2a, 2b, 3a o 3b para enlazar correctamente un EJB y su referencia. Por ejemplo, las opciones recomendadas son 1a y 2b para una configuración fácil y satisfactoria, pero si 1b se declara en conjunción con 3b, obtendrá la misma funcionalidad que la configuración recomendada.
beanName debe añadirse a la anotación @EJB. Si utiliza un ejb-jar.xml o web.xml, el elemento <ejb-link> debe añadirse al elemento <ejb-ref> existente. Las modificaciones de 1a y 1b se muestran aquí:lookup a la anotación @EJB. Si se utiliza un archivo ejb-jar.xml o web.xml, el elemento <lookup-name> debe añadirse al elemento <ejb-ref> existente. Las modificaciones de 1a y 1b se muestran aquí:
lookup, lookup-name o binding-name se
puede utilizar opcionalmente para hacer referencia a los EJB en la misma aplicación. En
ese caso, el valor se puede establecer en cualquier búsqueda de EJB directa aplicable que
se describe al final de esta página.
A continuación se muestra la búsqueda de referencia de EJB final:
De forma alternativa, hay tres opciones para buscar un EJB directamente, sin utilizar una referencia de EJB:
Para obtener más información sobre cómo utilizar enlaces EJB, consulte Utilización de Enterprise JavaBeans con interfaces remotas en Liberty y Visión general de los enlaces de aplicación EJB 3.0 y EJB 3.1.