📅  最后修改于: 2020-11-16 06:24:28             🧑  作者: Mango
JNDI代表Java命名和目录接口。它是一组API和服务接口。基于Java的应用程序使用JNDI进行命名和目录服务。在EJB上下文中,有两个术语。
绑定-这是指为EJB对象分配名称,以后可以使用。
查找-这是指查找并获取EJB对象。
在Jboss中,默认情况下,会话Bean以以下格式绑定在JNDI中。
本地-EJB名称/本地
远程-EJB名称/远程
如果EJB与
本地-应用程序名称/ ejb名称/本地
远程-应用程序名称/ ejb名称/远程
请参考EJB-创建应用程序一章的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绑定-
本地-org.jboss.ejb3.LocalBinding
远程-org.jboss.ejb3.RemoteBindings
更新LibrarySessionBean.java。请参阅“ EJB-创建应用程序”一章。
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 bookShelf;
public LibrarySessionBean() {
bookShelf = new ArrayList();
}
public void addBook(String bookName) {
bookShelf.add(bookName);
}
public List getBooks() {
return bookShelf;
}
}
package com.tutorialspoint.stateless;
import java.util.List;
import javax.ejb.Local;
@Local
public interface LibrarySessionBeanLocal {
void addBook(String bookName);
List getBooks();
}
生成项目,在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:
tutorialsPoint/librarySession - EJB3.x Default Local Business Interface
tutorialsPoint/librarySession-com.tutorialspoint.stateless.LibrarySessionBeanLocal - EJB3.x Local Business Interface
...