În aplicaţii WebLogic şi JBoss, elementul <local-jndi-name> defineşte numele JNDI pentru home-ul local al bean-ului în arborele global JNDI. Acesta este definit în fişierul weblogic-ejb-jar.xml sau jboss.xml.
WebSphere(R) nu permite maparea home-urilor locale la nume JNDI în arborele global JNDI. În loc, acestea sunt mapate în arborele JNDI al containerului local. Din acest motiv, programatorii trebuie să acceseze bean-uri enterprise locale folosind o referinţă JNDI în spaţiul de nume local; nu numele JNDI din spaţiul de nume global.
Această regulă este declanşată când elementul <local-jndi-name> este găsit în weblogic-ejb-jar.xml sau în jboss.xml. În scanerul de sursă este disponibilă o corecţie rapidă. Corecţia rapidă procesează fişiere Java, descriptori de implementare şi legări pentru a permite ca aceste referinţe să lucreze pe WebSphere.
Sunt procesate toate pachetele înrudite cu aplicaţia în care se află elementul <local-jndi-name>. Dacă nu este găsit proiectul EAR al aplicaţiei dumneavoastră sau dacă aceasta nu este asociată cu proiectul EJB găsit, este procesat numai proiectul EJB. Este important să aveţi proiecte conexe definite corect.
Când rulaţi corecţia rapidă în scanerul de sursă, se scanează toate fişierele Java în aplicaţia unde se află <local-jndi-name>. Se scanează pentru căutări de contexte directe la numele JNDI local şi se scanează pentru căutări de referinţe EJB la acel nume.
De exemplu, dacă numele JNDI local este ejb/myBeanLocalHome, următoarele exemple de cod declanşează actualizările la cod, la descriptorii şi legările de implementări sau ambele.|
ctx.lookup("ejb/myBeanLocalHome"); ctx.lookup("java:comp/ejb/myBeanLocalHome"); ctx.lookup(myBeanLocalHomeNameVariable); |
Codul Java este modificat în primul exemplu la ctx.lookup("java:comp/ejb/myBeanLocalHome") astfel încât este făcută o căutare de referinţă EJB. Celelalte două exemple Java rămân neschimbate. În toate cele trei cazuri, corecţia rapidă actualizează descriptorii de implementare şi legările pentru proiect.
Când este detectată o căutare de nume JNDI local specific pentru un proiect şi când este folosită o variabilă şi căutarea nu poate fi determinată, fişierul web.xml sau fişierul ejb-jar.xml este modificat pentru a include un <ejb-local-ref> pentru bean-ul care a definit numele JNDI local. În cazul unui proiect EJB, elementul <ejb-local-ref> este adăugat la fiecare bean care este definit în ejb-jar.xml. În cazul fişierului web.xml, o referinţă este adăugată pentru bean-ul care a definit numele JNDI local. Pentru ambele, numele JNDI <ejb-local-ref> este adăugat la fişierul de legări pentru proiect.