Sistema de Nombrado en Java (JNDI) y II

La lecci�n Preparaciones describe como configurar un contexto incial para acceder a servicios de nombres/directorios mediante el JNDI. Por ejemplo, para usar el proveedor LDAP de Sun, usamos un c�digo que se parecer�a a este:

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=jnditutorial");
Context ctx = new InitialContext(env);

// ... do something useful with ctx

La clase InitialContext es s�lo una clase envoltura que accede a la implementaci�n del contexto real -- el ejemplar Context creado por la clase factor�a de contexto inicial nombrada por la propiedad de entorno Context.INITIAL_CONTEXT_FACTORY ("java.naming.factory.initial"). La clase factor�a debe implementar el interface InitialContextFactory. En el ejemplo anterior, la clase factor�a de contexto inicial era com.sun.jndi.ldap.LdapCtxFactory.

Para que una implementaci�n de contexto sea accesible desde el contexto incial, un proveedor de servicio debe proporcionar una clase que implemente el interface InitialContextFactory. Aqu� tenemos un ejemplo de una factor�a de contexto inicial para el ejemplo del espacio de nombres en forma de �rbol:

public class InitCtxFactory implements InitialContextFactory {

    public Context getInitialContext(Hashtable env) {
        return new HierCtx(env);
    }
}

Este ejemplo es muy simple. Llama al constructor de HierCtx y devuelve un contexto vac�o. En una implementaci�n real, la factora�a de contexto incial debe crear un ejemplar de Context para alcanzar todas las otras apartes del espacio de nombres del servicio de nombres/directorio subyacente. Una implementaci�n real normalmente tambi�n usar�a la propiedad de entorno Context.PROVIDER_URL ( "java.naming.provider.url") para inicializar el contexto inicial. Por ejemplo, en el proveedor LDAP de Sun, la propiedad Context.PROVIDER_URL indica la direcci�n y el puerto de la m�quina del servidor de directorio, as� como el DN (nombre distinguido) de la ra�z del contexto de nombres a utilizar. En el ejemplo anterior, la direcci�n de la m�quina y el puerto eran localhost y 389 y el DN era "o=jnditutorial".

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR