Cambio de comportamiento en búsquedas de Enterprise JavaBeans en versiones anteriores de Liberty

En versiones de Liberty anteriores a 20.0.0.12, los componentes EJB no estaban enlazados a un espacio de nombres Java Naming and Directory Interface (JNDI) raíz del servidor ya que están en WebSphere Application Server tradicional, por lo que es posible que las búsquedas y los enlaces de @EJB en ibm-ejb-jar-bnd.xml o ibm-web-bnd.xml requieran migración. Si no está utilizando Liberty 20.0.0.12 o posterior, estas búsquedas deben utilizar la sintaxis de JNDI portable para componentes EJB alojados en el mismo servidor y los URL corbaname: para componentes EJB alojados en otro servidor.

Solo se han aceptado los siguientes espacios de nombres antes de la versión de Liberty 20.0.0.12:

Esta regla señala anotaciones @EJB con un valor de atributo lookup que no se inicia con uno de los espacios de nombres listados anteriormente.


//esta búsqueda se marcará
@Stateless
@EJB(lookup="ejb/myApp/myModule/MyBeanComponent")

Esta regla también marca los literales de serie que empiecen por "ejblocal:".


//esto se marcará
new InitialContext().lookup("ejblocal:" + getEJBName());

La regla también marca nombres JNDI que no utilizan uno de los espacios de nombres listados anteriormente para el valor de atributo binding-name en el elemento <ejb-ref> en los archivos ibm-ejb-jar-bnd.xml y ibm-web-bnd.xml.


//este enlace no se marcará
<ejb-ref name="TestBean" binding-name="java:global/TestApp/TestModule/TestBean!test.TestRemoteInterface">

La regla también marca nombres JNDI que no utilizan uno de los espacios de nombres listados anteriormente para el valor de atributo jndiName en el elemento <ejbRefBindings> en los archivos ibm-ejb-jar-bnd.xmi y ibm-web-bnd.xmi .


//este nombre JNDI se marcará
<ejbRefBindings jndiName="java:myFolder/">

Para obtener más información sobre cómo utilizar Enterprise Java Beans 2.x en Liberty, consulte Utilización de Enterprise JavaBeans con interfaces remotas en Liberty.