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:
java:global/java:app/java:module/java:comp/corbaname:Esta regla marca @EJB anotaciones con un lookup valor de atributo que no empieza por 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 señala los nombres JNDI que no utilizan uno de los espacios de nombres listados anteriormente para el binding-name valor de atributo en el <ejb-ref> en los archivos ibm-ejb-jar-bnd.xml y ibm-web-bnd.xml .
< code> // este enlace no se marcará < ejb-ref name= "TestBean" binding-name="java:global/TestApp/TestModule/TestBean!test.TestRemoteInterface"> < /code>
La regla también señala los nombres JNDI que no utilizan uno de los espacios de nombres listados anteriormente para el jndiName valor de atributo en el <ejbRefBindings> en los archivos ibm-ejb-jar-bnd.xmi y ibm-web-bnd.xmi .
< code> // este nombre JNDI se marcará <ejbRefBindings jndiName= "java:myFolder/"> < /code>
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.