EJB - JNDI Wiązania
JNDI oznacza Java Naming and Directory Interface. Jest to zestaw interfejsów API i usług. Aplikacje oparte na języku Java używają JNDI do nazewnictwa i usług katalogowych. W kontekście EJB istnieją dwa terminy.
Binding - Odnosi się to do przypisywania nazwy do obiektu EJB, której można użyć później.
Lookup - Odnosi się to do patrzenia w górę i zdobywania obiektu EJB.
W Jboss komponenty bean sesji są domyślnie wiązane w JNDI w następującym formacie.
local - nazwa-EJB / lokalna
remote - nazwa EJB / pilot
W przypadku, gdy EJB są dołączone do pliku <nazwa aplikacji> .ear, wówczas domyślny format jest następujący -
local - nazwa-aplikacji / nazwa-ejb / local
remote - nazwa-aplikacji / nazwa-ejb / remote
Przykład domyślnego powiązania
Zobacz sekcję EJB - Tworzenie aplikacji , wyjście konsoli JBoss.
Dane wyjściowe dziennika serwera aplikacji JBoss
...
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
...
Dostosowane wiązanie
Poniższe adnotacje mogą służyć do dostosowywania domyślnych powiązań JNDI -
local - org.jboss.ejb3.LocalBinding
remote - org.jboss.ejb3.RemoteBindings
Zaktualizuj LibrarySessionBean.java. Zapoznaj się z rozdziałem EJB - Tworzenie aplikacji .
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();
}
Zbuduj projekt, wdróż aplikację na Jboss i sprawdź następujące dane wyjściowe w konsoli Jboss -
...
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
...