Modificarea de comportament pentru căutări pentru Enterprise JavaBeans în versiunile anterioare ale Liberty

În versiunile Liberty anterioare 20.0.012, componentele EJB nu au fost legate la un spaţiu de nume JNDI (Java Naming and Directory Interface) rădăcină de server cum acestea sunt în WebSphere Application Server tradiţional, aşa că căutările şi legările @EJB din fişierele ibm-ejb-jar-bnd.xml sau ibm-web-bnd.xml ar putea necesita migrare. Dacă nu utilizaţi Liberty 20.0.0.12 sau mai nou, aceste căutări trebuie să utilizeze sintaxa JNDI portabilă pentru componentele EJB care sunt găzduite în acelaşi server şi URL-uri corbaname: pentru componentele EJB care sunt găzduite în alt server.

Doar următoarele spaţii de nume au fost acceptate înainte de Liberty versiunea 20.0.0.12:

Această regulă semnalează adnotările @EJB cu o valoare de atribut lookup care nu începe cu unul dintre spaţiile de nume listate mai sus.


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

Această regulă semnalează și literalii șir care încep cu „ejblocal:”.


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

Regula semnalează și numele JNDI care nu utilizează unul din din spațiile de nume listate mai sus pentru valoarea atributului binding-name în elementul <ejb-ref> din fișierele ibm-ejb-jar-bnd.xml și ibm-web-bnd.xml.


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

Regula semnalează și numele JNDI care nu folosesc unul dintre spațiile de nume enumerate mai sus pentru valoarea atributul jndiName în elementul <ejbRefBindings> în fișierele ibm-ejb-jar-bnd.xmi și ibm-web-bnd.xmi.


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

Pentru informaţii suplimentare despre utilizarea Enterprise Java Beans 2.x în Liberty, vedeţi Utilizarea Enterprise JavaBeans cu interfeţe la distanţă pe Liberty.