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ă @EJB adnotări cu un lookup valoarea atributului care nu începe cu unul dintre namespace-urile enumerate 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, de asemenea, steaguri JNDI nume care nu folosesc unul dintre namespaces enumerate mai sus pentru binding-name valoare atribut în <ejb-ref> element in the ibm-ejb-jar-bnd.xml and ibm-web-bnd.xml files.

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

Regula, de asemenea, steaguri JNDI nume care nu folosesc unul dintre namespaces enumerate mai sus pentru jndiName valoare atribut în <ejbRefBindings> element in the ibm-ejb-jar-bnd.xmi and ibm-web-bnd.xmi files.

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

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.