EJB - JNDI Bindings
JNDI adalah singkatan dari Java Naming and Directory Interface. Ini adalah satu set API dan antarmuka layanan. Aplikasi berbasis Java menggunakan JNDI untuk penamaan dan layanan direktori. Dalam konteks EJB ada dua istilah.
Binding - Ini mengacu pada pemberian nama ke objek EJB, yang dapat digunakan nanti.
Lookup - Ini mengacu pada mencari dan mendapatkan objek EJB.
Di Jboss, kacang sesi terikat di JNDI dalam format berikut secara default.
local - Nama-EJB / lokal
remote - Nama EJB / jarak jauh
Dalam kasus, EJB dibundel dengan file <application-name> .ear, maka format defaultnya adalah sebagai berikut -
local - nama-aplikasi / nama-ejb / lokal
remote - nama-aplikasi / nama-ejb / jarak jauh
Contoh Pengikatan Default
Lihat EJB - Membuat keluaran konsol JBoss bab Aplikasi .
Output Log Server Aplikasi 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
...
Pengikatan Khusus
Anotasi berikut dapat digunakan untuk menyesuaikan binding JNDI default -
local - org.jboss.ejb3.LocalBinding
remote - org.jboss.ejb3.RemoteBindings
Perbarui LibrarySessionBean.java. Lihat EJB - Membuat bab Aplikasi .
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();
}
Bangun proyek, terapkan aplikasi di Jboss, dan verifikasi keluaran berikut di konsol 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
...