EJB - JNDI-Bindungen
JNDI steht für Java Naming and Directory Interface. Es handelt sich um eine Reihe von API- und Service-Schnittstellen. Java-basierte Anwendungen verwenden JNDI für Namens- und Verzeichnisdienste. Im Zusammenhang mit EJB gibt es zwei Begriffe.
Binding - Dies bezieht sich auf die Zuweisung eines Namens zu einem EJB-Objekt, das später verwendet werden kann.
Lookup - Dies bezieht sich auf das Nachschlagen und Abrufen eines Objekts von EJB.
In Jboss werden Session Beans standardmäßig in JNDI im folgenden Format gebunden.
local - EJB-Name / lokal
remote - EJB-Name / Fernbedienung
Wenn EJB mit der Datei <Anwendungsname> .ear gebündelt sind, lautet das Standardformat wie folgt:
local - Anwendungsname / EJB-Name / lokal
remote - Anwendungsname / EJB-Name / Remote
Beispiel für die Standardbindung
Weitere Informationen finden Sie in der JBoss-Konsolenausgabe des Kapitels EJB - Anwendung erstellen .
JBoss Application Server-Protokollausgabe
...
16:30:02,723 INFO [SessionSpecContainer] Starting jboss.j2ee:jar=EjbComponent.jar,name=LibrarySessionBean,service=EJB3
16:30:02,723 INFO [EJBContainer] STARTED EJB: com.tutorialspoint.stateless.LibrarySessionBean ejbName: LibrarySessionBean
16:30:02,731 INFO [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:
LibrarySessionBean/remote - EJB3.x Default Remote Business Interface
LibrarySessionBean/remote-com.tutorialspoint.stateless.LibrarySessionBeanRemote - EJB3.x Remote Business Interface
...
Kundenspezifische Bindung
Die folgenden Anmerkungen können verwendet werden, um die Standard-JNDI-Bindungen anzupassen:
local - org.jboss.ejb3.LocalBinding
remote - org.jboss.ejb3.RemoteBindings
Aktualisieren Sie LibrarySessionBean.java. Siehe Kapitel EJB - Anwendung erstellen .
LibrarySessionBean
package com.tutorialspoint.stateless;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateless;
@Stateless
@LocalBinding(jndiBinding="tutorialsPoint/librarySession")
public class LibrarySessionBean implements LibrarySessionBeanLocal {
List<String> bookShelf;
public LibrarySessionBean() {
bookShelf = new ArrayList<String>();
}
public void addBook(String bookName) {
bookShelf.add(bookName);
}
public List<String> getBooks() {
return bookShelf;
}
}
LibrarySessionBeanLocal
package com.tutorialspoint.stateless;
import java.util.List;
import javax.ejb.Local;
@Local
public interface LibrarySessionBeanLocal {
void addBook(String bookName);
List getBooks();
}
Erstellen Sie das Projekt, stellen Sie die Anwendung auf Jboss bereit und überprüfen Sie die folgende Ausgabe in der Jboss-Konsole:
...
16:30:02,723 INFO [SessionSpecContainer] Starting jboss.j2ee:jar=EjbComponent.jar,name=LibrarySessionBean,service=EJB3
16:30:02,723 INFO [EJBContainer] STARTED EJB: com.tutorialspoint.stateless.LibrarySessionBean ejbName: LibrarySessionBean
16:30:02,731 INFO [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:
tutorialsPoint/librarySession - EJB3.x Default Local Business Interface
tutorialsPoint/librarySession-com.tutorialspoint.stateless.LibrarySessionBeanLocal - EJB3.x Local Business Interface
...