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.
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.
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.
En este punto, se llava a cabo la operación real.
|