EJB - JNDI Bindings
JNDI là viết tắt của Java Naming and Directory Interface. Nó là một tập hợp các giao diện API và dịch vụ. Các ứng dụng dựa trên Java sử dụng JNDI để đặt tên và các dịch vụ thư mục. Trong ngữ cảnh của EJB, có hai thuật ngữ.
Binding - Điều này đề cập đến việc gán tên cho một đối tượng EJB, có thể được sử dụng sau này.
Lookup - Điều này đề cập đến việc tìm kiếm và lấy một đối tượng của EJB.
Trong Jboss, các bean phiên được ràng buộc trong JNDI theo định dạng sau theo mặc định.
local - Tên EJB / địa phương
remote - EJB-name / điều khiển từ xa
Trong trường hợp, EJB được đóng gói với tệp .ear <application-name>, thì định dạng mặc định như sau:
local - tên-ứng dụng / ejb-tên / địa phương
remote - tên ứng dụng / ejb-name / điều khiển từ xa
Ví dụ về ràng buộc mặc định
Tham khảo EJB - Đầu ra bảng điều khiển JBoss của chương Ứng dụng .
Đầu ra nhật ký máy chủ ứng dụng 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
...
Ràng buộc tùy chỉnh
Các chú thích sau có thể được sử dụng để tùy chỉnh các ràng buộc JNDI mặc định:
local - org.jboss.ejb3.LocalBinding
remote - org.jboss.ejb3.RemoteBindings
Cập nhật LibrarySessionBean.java. Tham khảo chương EJB - Tạo ứng dụng .
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();
}
Xây dựng dự án, triển khai ứng dụng trên Jboss và xác minh kết quả đầu ra sau trong bảng điều khiển 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
...