Programación en castellano Añadir una dirección | Buscador | Cursos | Artículos | Foros | Formación

Sistema de Nombrado en Java (JNDI) y II
Autor: Sun
Traductor: Juan Antonio Palos (Ozito)


En esta página:


Implementar una Factoría de Contexto Inicial

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".


Principio Página
© 1999-2002, Programación en castellano, s.l.
Contacto - Datos legales

ReD Internet: Hospedaje Web | envio sms gratis | Salvapantallas | Fondos de Escritorio, famosas | melodias moviles gratis| Gratis