In WebLogic- und JBoss-Anwendungen definiert das Element <local-jndi-name> den JNDI-Namen für die lokale Ausgangsposition der Bean in der globalen JNDI-Baumstruktur. Dieses Element wird in der Datei weblogic-ejb-jar.xml oder in der Datei jboss.xml definiert.
WebSphere(R) lässt die Zuordnung lokaler Ausgangspositionen zu JNDI-Namen in der globalen JNDI-Baumstruktur nicht zu. Stattdessen werden diese Ausgangspositionen der JNDI-Baumstruktur des lokalen Containers zugeordnet. Aus diesem Grund müssen Programmierer über eine JNDI-Referenz im lokalen Namespace und nicht über den JNDI-Namen im globalen Namespace auf lokale Enterprise-Beans zugreifen.
Diese Regel wird ausgelöst, wenn ein <local-jndi-name> Element gefunden wird in weblogic-ejb-jar.xml oder in jboss.xml gefunden wird. Die automatische Korrektur verarbeitet Java Dateien, Bereitstellungsdeskriptoren und Bindungen, damit diese referenzen auf WebSphere funktionieren.
Alle Pakete, die sich auf die Anwendung beziehen, in der sich das Element <local-jndi-name> befindet, werden verarbeitet. Wenn Ihr Anwendungs-EAR-Projekt nicht gefunden wird oder dem gefundenen EJB-Projekt nicht zugeordnet ist, wird nur das EJB-Projekt verarbeitet. Es ist von entscheidender Bedeutung, dass die zugehörigen Projekte ordnungsgemäß definiert sind.
Wenn die automatische Korrektur verfügbar ist und angewendet wurde, werden alle Java Dateien in der Anwendung gescannt, in denen der <lokaler-jndi-name> gefunden wird. Es werden direkte Kontext-Lookups des lokalen JNDI-Namens und Lookups der EJB-Referenz auf diesen Namen überprüft.
Wenn der lokale JNDI-Name beispielsweise ejb/myBeanLocalHome , lösen die folgenden Codebeispiele Aktualisierungen für Code, Implementierungsdeskriptoren und/oder Bindungen aus.Der Java -Code wurde im ersten Beispiel wie folgt geändert: ctx.lookup("java:comp/ejb/myBeanLocalHome") so dass ein EJB-Referenz-Lookup durchgeführt wird. Die anderen beiden Java-Beispiele bleiben unverändert. In allen drei Fällen werden durch die automatische Korrektur die Bereitstellungsdeskriptoren und Bindungen für das Projekt aktualisiert.
Wenn ein Lookup des spezifischen lokalen JNDI-Namens für ein Projekt gefunden wird und eine Variable verwendet wird, das Lookup aber nicht bestimmt werden kann, wird die Datei web.xml oder die Datei ejb-jar.xml geändert und ein Element <ejb-local-ref> für die Bean eingefügt, die den lokalen JNDI-Namen definiert. Im Fall eines EJB-Projekts wird jeder Bean, die in der Datei ejb-jar.xml definiert ist, das Element <ejb-local-ref> hinzugefügt. In der Datei web.xml wird eine einzige Referenz für die Bean hinzugefügt, die den lokalen JNDI-Namen definiert. In beiden Fällen wird der JNDI-Name aus dem Element <ejb-local-ref> der Bindungsdatei für das Projekt hinzugefügt.