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

Sistema de Nombrado en Java (JNDI) [Parte I]
Autor: Sun
Traductor: Juan Antonio Palos (Ozito)


En esta página:


El Siguiente Sistema de Nombres

Una vez que el proveedor de servicios ha determinado el puntero nns usando las técnicas descritas en la la página anterior, debe devolver el puntero nns dentro de un contexto, llamado contexto de continuación, y continuar la operación en ese contexto. Para hacer esto, el JNDI proporciona los siguientes métodos de utilidad.

El argumento a estos métodos es un CannotProceedException.

El propósito de estos métodos es obtener un contexto en el nns en el que continuar la operación usando el puntero nns y otra información de la CannotProceedException.

El Contexto de Continuación

El JNDI obtiene el contexto de continuación basándose en la información suministrada en la CannotProceedException. El proveedor de servicios debe completar esta información. La siguiente tabla describe los campos de esta excepción.

Campo Descripción
resolved name El nombre del objeto resuelto, en relación al contexto original para esta operación.
resolved object El puntero nns. Este se usa como argumento objeto para la factoría de objetos.
remaining name La parte del nombre mixto que falta por procesar.
"alt" name El nombre del objeto resuelto, en relación al nombre de contexto "alt". Se usa como argumento nombre para la factoría de objetos.
"alt" name context El contexto en el que resolver el nombre "alt". Se usa como el argumento context para la factoría de objetos.
environment El entorno del contexto actual. Se usa como argumento entorno para la factoría de objetos.
remaining new name El nombre restante para usar como argumento "new name" para Context.rename().

El JNDI usa la información de la excepción para encontrar un objecto factoría, descrito en la lección Objectos Factoría, que devuelve un ejemplar de Context.

Si el JNDI no puede encontrar el contexto apropiado en el que continuar la operación, lanza la CannotProceedException recibida desde el proveedor de servicios.

Resolver a través de Subinterfaces

Observamos en las descripciones anteriores que el objeto factoría que produce el contexto de continuación debe devolver un ejemplar de Context.

El ejemplar no necesita implementar otros subinterfaces de Context.

Eso es por lo que no tiene sentido requerir que el sistema de nombres intermedio implemente todos los subinterfaces del sistema de nombres terminal. Para que la resolución tenga éxito, el JNDI tiene los siguientes requerimientos.

  • Los proveedores para los sistemas de nombres originador y terminal deben implementar el subinterface.
  • Los proveedores para todos los otros sistemas de nombres intemedios deben implementar el subinterface o los interfaces Resolver y Context.

El interface Resolver está pensado para permitir la resolución para proceder a través de un proveedor que soporta el interface de otro que lo hace. DirectoryManager.getContinuationDirContext() usa automáticamente el interface Resolver cuando lo necesita.

Puedes ir a la sección Construir un Proveedor de Servicios para ver más detalles.

Completar la Operación

Después de que el proveedor obtenga un contexto de continuación, llama a la operación de contexto original sobre el contexto de continuación usando como argumento nombre el resto de los componentes del nombre mixto. Aquí tenemos un ejemplo que hace esto para DirContext.search().

DirContext cctx = DirectoryManager.getContinuationDirContext(cpe);
answer = cctx.search(cpe.getRemainingName(), matchingAttrs);

El proceso continúa en el siguiente sistema de  nombres. Ahora se repite el siguiente proceso de tres pasos hasta que el se alcanza el sistema de nombres terminal.

  • Determinar los componentes del nombre mixto a procesar.
  • Procesar los resultados del paso 1.
  • Continuar en el siguiente sistema de nombres.

En este punto, se llava a cabo la operación real.


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