Changement de comportement pour les recherches de beans Enterprise JavaBeans dans les versions antérieures de Liberty

Dans les versions Liberty antérieures à 20.0.0.12, les composants EJB n'étaient pas liés à un espace de nom JNDI (Java Naming and Directory Interface) principal de serveur, car ils se trouvent dans WebSphere Application Server Traditional, donc les recherches et les liaisons @EJB dans le fichier ibm-ejb-jar-bnd.xml ou ibm-web-bnd.xml peuvent nécessiter une migration. Si vous utilisez une version Liberty antérieure à 20.0.0.12, ces recherches doivent utiliser la syntaxe JNDI portable pour les composants EJB qui sont hébergés sur le même serveur et des URL corbaname: pour les composants EJB qui sont hébergés sur un autre serveur.

Seuls les espaces de nom suivants étaient pris en charge dans les versions Liberty antérieures à 20.0.0.12 :

Cette règle marque les annotations @EJB avec une valeur d'attribut lookup qui ne commence pas par l'un des espaces de nom indiqués ci-dessus.


//cette recherche sera marquée
@Stateless
@EJB(lookup="ejb/myApp/myModule/MyBeanComponent")

Cette règle marque également les littéraux chaîne qui commencent par "ejblocal:".


//celle-ci sera marquée
new InitialContext().lookup("ejblocal:" + getEJBName());

La règle marque également les noms JNDI qui n'utilisent pas l'un des espaces de noms listés plus haut pour la valeur de l'attribut binding-name dans l'élément <ejb-ref>, dans les fichiers Ibm-ejb-jar-bnd.xml et Ibm-web-bnd.xml.


//cette liaison ne sera pas marquée
<ejb-ref name="TestBean" binding-name="java:global/TestApp/TestModule/TestBean!test.TestRemoteInterface">

La règle marque également les noms JNDI qui n'utilisent pas l'un des espaces de noms listés plus haut pour la valeur de l'attribut jndiName dans l'élément <ejbRefBindings>, dans les fichiers Ibm-ejb-jar-bnd.xmi et Ibm-web-bnd.xmi.


//ce nom JNDI sera marqué
<ejbRefBindings jndiName="java:myFolder/">

Pour plus d'informations sur l'utilisation d'Enterprise Java Beans 2.x dans Liberty, voir Utilisation des beans Enterprise JavaBeans avec des interfaces distantes dans Liberty.