Nepoužívat lokální názvy rozhraní JNDI

V aplikacích WebLogic a JBoss definuje prvek <local-jndi-name> název rozhraní JNDI pro lokální domovský adresář objektu typu bean v globálním stromu rozhraní JNDI. Je definován v souboru weblogic-ejb-jar.xml nebo v souboru jboss.xml.

Produkt WebSphere(R) neumožňuje mapování lokálních domovských adresářů na názvy rozhraní JNDI v globálním stromu rozhraní JNDI. Místo toho jsou mapovány do stromu rozhraní JNDI lokálního kontejneru. Z tohoto důvodu musí programátoři přistupovat k lokálním objektům enterprise bean pomocí odkazu rozhraní JNDI v lokálním oboru názvů, nikoli v názvu rozhraní JNDI v globálním oboru názvů.

Toto pravidlo je spuštěno, když je v položce <local-jndi-name> nalezen prvek weblogic-ejb-jar.xml nebo v jboss.xml. Automatická oprava zpracuje soubory Java, deskriptory nasazení a vazby tak, aby umožňovaly tyto odkazy fungovat na adrese WebSphere.

Všechny balíky související s aplikací, ve kterých je nalezen prvek <local-jndi-name>, se zpracují. Pokud není projekt EAR aplikace nalezen nebo není přidružen k nalezenému projektu EJB, bude zpracován pouze projekt EJB. Je důležité mít správně nadefinované vaše související projekty.

Jakmile je automatická oprava k dispozici a byla použita, prohledá všechny soubory Java v aplikaci, kde je chyba odstraněna <local-jndi-name>. Skenuje přímý kontext vyhledávání na lokální název rozhraní JNDI a prochází a hledá odkazy EJB na tento název.

Například, pokud je lokální název rozhraní JNDI ejb/myBeanLocalHome , následující příklady kódu spouštějí aktualizace kódu, deskriptorů implementace a vazeb, nebo obojí.

Příklady vyhledání Java:

ctx.lookup("ejb/myBeanLocalHome");

ctx.lookup("java:comp/ejb/myBeanLocalHome");

ctx.lookup(myBeanLocalHomeNameVariable);

Kód Java je v prvním příkladu změněn na ctx.lookup("java:comp/ejb/myBeanLocalHome") aby se provede vyhledání odkazu na EJB. Další dva příklady Java zůstávají nezměněny. Ve všech třech případech automatická oprava aktualizuje deskriptory nasazení a vazby pro projekt.

Když je pro projekt zjištěno vyhledávání konkrétního místního názvu JNDI a když je použita proměnná a vyhledávání nelze určit, web.xml soubor nebo ejb-jar.xml soubor je upraven tak, aby obsahoval <ejb-local-ref> pro bean která definovala místní název JNDI. V případě projektu EJB, je element <ejb-local-ref> přidán ke každé fazoli, která je definována v projektu ejb-jar.xml. V případě souboru web.xml je přidán jeden odkaz pro bean, který definoval místní název JNDI. V obou případech se název <ejb-local-ref> JNDI přidá do souboru souboru vazeb pro projekt.