Cambio di comportamento sulle ricerche JavaBeans Enterprise nelle versioni precedenti della Liberty

Nelle versioni di Liberty precedenti alla 20.0.0.12, i componenti EJB non erano vincolati ad uno spazio dei nomi Java Naming and Directory Interface (JNDI) della root server come lo sono in WebSphere Application Server tradizionale, quindi le ricerche @EJB ed i bind nei file ibm-ejb-jar-bnd.xml o ibm-web-bnd.xml potrebbero richiedere la migrazione. Se non si utilizza Liberty 20.0.0.12 o successiva, queste ricerche devono utilizzare la sintassi JNDI portabile per i componenti EJB ospitati all'interno dello stesso server e URL corbaname: per i componenti EJB ospitati in un altro server.

Nelle versioni di Liberty precedenti alla 20.0.0.12 venivano accettati solo i seguenti spazi dei nomi.

Questa regola contrassegna le annotazioni @EJB con un valore d'attributo lookup che non inizia con uno degli spazi dei nomi elencati in precedenza.


//this lookup will be flagged
@Stateless
@EJB(lookup="ejb/myApp/myModule/MyBeanComponent")

Questa regola contrassegna anche i valori letterali delle stringhe che iniziano con "ejblocal:".


//this will be flagged
new InitialContext().lookup("ejblocal:" + getEJBName());

La regola contrassegna anche i nomi JNDI che non utilizzano uno dei namespace elencati sopra per il valore dell'attributo binding-name nell'elemento <ejb-ref> nei file ibm-ejb-jar-bnd.xml e ibm-web-bnd.xml.


//this binding will not be flagged
<ejb-ref name="TestBean" binding-name="java:global/TestApp/TestModule/TestBean!test.TestRemoteInterface">

La regola contrassegna anche i nomi JNDI che non utilizzano uno dei namespace elencati sopra per il valore dell'attributo jndiName nell'elemento <ejbRefBindings> nei file ibm-ejb-jar-bnd.xmi e ibm-web-bnd.xmi.


//this JNDI name will be flagged
<ejbRefBindings jndiName="java:myFolder/">

Per ulteriori in formazioni sull'utilizzo Enterprise Java Beans 2.x in Liberty, consultare Using enterprise JavaBeans with remote interfaces on Liberty.