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 @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.