EJB - Enlaces JNDI
JNDI son las siglas de Java Naming and Directory Interface. Es un conjunto de interfaces de servicio y API. Las aplicaciones basadas en Java utilizan JNDI para servicios de directorio y nombres. En el contexto de EJB, hay dos términos.
Binding - Esto se refiere a asignar un nombre a un objeto EJB, que se puede utilizar más adelante.
Lookup - Esto se refiere a buscar y obtener un objeto de EJB.
En Jboss, los beans de sesión están enlazados en JNDI en el siguiente formato de forma predeterminada.
local - nombre EJB / local
remote - Nombre EJB / remoto
En caso de que EJB se incluya con el archivo <application-name> .ear, el formato predeterminado es el siguiente:
local - nombre-aplicación / nombre-ejb / local
remote - nombre-aplicación / nombre-ejb / remoto
Ejemplo de enlace predeterminado
Consulte la salida de la consola JBoss del capítulo EJB - Crear aplicación .
Salida de registro del servidor de aplicaciones 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
...
Encuadernación personalizada
Las siguientes anotaciones se pueden utilizar para personalizar los enlaces JNDI predeterminados:
local - org.jboss.ejb3.LocalBinding
remote - org.jboss.ejb3.RemoteBindings
Actualice LibrarySessionBean.java. Consulte el capítulo EJB - Crear aplicación .
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;
}
}
BibliotecaSessionBeanLocal
package com.tutorialspoint.stateless;
import java.util.List;
import javax.ejb.Local;
@Local
public interface LibrarySessionBeanLocal {
void addBook(String bookName);
List getBooks();
}
Cree el proyecto, implemente la aplicación en Jboss y verifique el siguiente resultado en la consola de 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
...