JNDI расшифровывается как Java Naming and Directory Interface. Это набор API и сервисных интерфейсов. Java-приложения используют JNDI для именования и служб каталогов. В контексте EJB есть два термина.
-
Привязка — это относится к присвоению имени объекту EJB, который можно использовать позже.
-
Lookup — это относится к поиску и получению объекта EJB.
Привязка — это относится к присвоению имени объекту EJB, который можно использовать позже.
Lookup — это относится к поиску и получению объекта EJB.
В Jboss сессионные компоненты по умолчанию связаны в JNDI в следующем формате.
-
местный — EJB-имя / местный
-
удаленный — EJB-имя / удаленный
местный — EJB-имя / местный
удаленный — EJB-имя / удаленный
В случае, если EJB связан с файлом <application-name> .ear, то по умолчанию используется следующий формат:
-
local — имя приложения / ejb-name / local
-
remote — имя приложения / ejb-name / remote
local — имя приложения / ejb-name / local
remote — имя приложения / ejb-name / remote
Пример привязки по умолчанию
Обратитесь к EJB — вывод консоли JBoss главы « Создание приложения ».
Вывод журнала сервера приложений 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 ...
Индивидуальная привязка
Следующие аннотации могут быть использованы для настройки привязок JNDI по умолчанию —
-
local — org.jboss.ejb3.LocalBinding
-
удаленный — org.jboss.ejb3.RemoteBindings
local — org.jboss.ejb3.LocalBinding
удаленный — org.jboss.ejb3.RemoteBindings
Обновите LibrarySessionBean.java. Обратитесь к главе EJB — Создание приложения .
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(); }
Создайте проект, разверните приложение в Jboss и проверьте следующий вывод в консоли Jboss: