Java Naming and Directory Interface
O Java Naming and Directory Interface (JNDI) é uma API para acesso ao serviço de nomes e diretórios, utilizado para pedir ao servidor de aplicações web (Glassfish) um componente EJB.
Para criar uma conexão com o serviço de nomes e diretórios utilizamos a classe java.naming.InitialContext.
No exemplo a seguir, criamos um método getProperties() que configura alguns parâmetros informando de onde iremos utilizar o serviço de nomes e diretórios, depois criamos o método buscaEJB() que ira utilizar o InicialContext para pedir um objeto através de seu nome "br.exemplo.ejb.UsuarioRemote"
.
package br.exemplo.jndi;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
/**
* Classe utilizada para demonstrar como localizar
* um objeto através do JNDI.
*/
public class ExemploJNDI {
public static UsuarioRemote buscarEJB() throws Exception {
try {
InitialContext ctx = new InitialContext();
UsuarioRemote usuarioEjb = (UsuarioRemote)
ctx.lookup("br.exemplo.ejb.UsuarioRemote");
return usuarioEjb;
} catch (NamingException ex) {
ex.printStackTrace();
throw new Exception("Não encontrou o EJB");
}
}
}