Geändertes Verhalten bei Suche nach Enterprise JavaBeans in früheren Versionen von Liberty

In den Liberty-Versionen vor 20.0.0.12 wurden EJB-Komponenten nicht wie in WebSphere Application Server Traditional an den JNDI-Namespace (Java Naming and Directory Interface (JNDI) des Serverstammverzeichnisses gebunden. Deshalb mussten @EJB-Suchen und -Bindungen in der Datei ibm-ejb-jar-bnd.xml oder ibm-web-bnd.xml möglicherweise migriert werden. Wenn Liberty 20.0.0.12 oder höher nicht verwendet wird, müssen diese Suchen die portierbare JNDI-Syntax für EJB-Komponenten, die sich auf demselben Server befinden, und corbaname:-URLs für EJB-Komonenten, die sich auf einem anderen Server befinden, verwenden.

Vor Liberty Version 20.0.0.12 wurden nur die folgenden Namespaces akzeptiert:

Diese Regel markiert @EJB-Annotationen mit einem Attributwert lookup, der nicht mit einem der zuvor aufgelisteten Namespaces beginnt.


//Diese Suche wird markiert
@Stateless
@EJB(lookup="ejb/myApp/myModule/MyBeanComponent")

Diese Regel markiert auch Zeichenfolgeliterale, die mit "ejblocal:" beginnen.


//Dies wird markiert als
neuer InitialContext().lookup("ejblocal:" + getEJBName());

Die Regel markiert auch JNDI-Namen, die keinen der oben aufgelisteten Namensbereiche für den Attributwert binding-name im Element <ejb-ref> in den Dateien ibm-ejb-jar-bnd.xml und ibm-web-bnd.xml verwenden.


//Dieses Bindung wird nicht markiert
<ejb-ref name="TestBean" binding-name="java:global/TestApp/TestModule/TestBean!test.TestRemoteInterface">

Die Regel markiert auch JNDI-Namen, die keinen der oben aufgelisteten Namensbereiche für den Attributwert jndiName im Element <ejbRefBindings> in den Dateien ibm-ejb-jar-bnd.xmi und ibm-web-bnd.xmi verwenden.


//Dieser JNDI-Name wird markiert
<ejbRefBindings jndiName="java:myFolder/">

Weitere Informationen zur Verwendung von Enterprise Java Beans 2.x in Liberty finden Sie unter Enterprise JavaBeans mit fernen Schnittstellen in Liberty verwenden.