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.
java:global/java:app/java:module/java:comp/corbaname:Questa regola contrassegna @EJB annotazioni con lookup valore di attributo che non inizia con uno degli spazi dei nomi sopra elencati.
//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 degli spazi dei nomi sopra elencati per binding-name valore dell'attributo nel <ejb-ref> nei file ibm-ejb-jar-bnd.xml e ibm-web-bnd.xml .
< code> // questo bind non verrĂ contrassegnato < ejb - ref name= "TestBean" binding - name="java:global/TestApp/TestModule/TestBean!test.TestRemoteInterface"> < /code>
La regola contrassegna anche i nomi JNDI che non utilizzano uno degli spazi dei nomi sopra elencati per jndiName valore dell'attributo nel <ejbRefBindings> nei file ibm-ejb-jar-bnd.xmi e ibm-web-bnd.xmi .
< code> // questo nome JNDI verrĂ contrassegnato <ejbRefBindings jndiName= "java:myFolder/"> < /code>
Per ulteriori in formazioni sull'utilizzo Enterprise Java Beans 2.x in Liberty, consultare Using enterprise JavaBeans with remote interfaces on Liberty.