EJB - Ligações JNDI
JNDI significa Java Naming and Directory Interface. É um conjunto de interfaces API e de serviço. Os aplicativos baseados em Java usam JNDI para serviços de nomenclatura e diretório. No contexto do EJB, existem dois termos.
Binding - Refere-se à atribuição de um nome a um objeto EJB, que pode ser usado posteriormente.
Lookup - Refere-se a procurar e obter um objeto de EJB.
No Jboss, os beans de sessão são vinculados ao JNDI no seguinte formato por padrão.
local - nome EJB / local
remote - nome EJB / remoto
No caso, EJB são empacotados com o arquivo <application-name> .ear, então o formato padrão é o seguinte -
local - nome do aplicativo / nome ejb / local
remote - nome do aplicativo / nome ejb / remoto
Exemplo de vinculação padrão
Consulte a saída do console JBoss do capítulo EJB - Criar aplicativo .
Saída de log do servidor de aplicativos 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
...
Encadernação Personalizada
As anotações a seguir podem ser usadas para personalizar as ligações JNDI padrão -
local - org.jboss.ejb3.LocalBinding
remote - org.jboss.ejb3.RemoteBindings
Atualize LibrarySessionBean.java. Consulte o capítulo EJB - Criar aplicativo .
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();
}
Construir o projeto, implantar o aplicativo no Jboss e verificar a seguinte saída no console do 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
...