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:


Paquete Naming

El paquete javax.naming contiene clases e interfaces para acceder a servicios de nombrado.

Contexto

El paquete javax.naming define un interface Context, que es el interface corazón para localizar, unir/desunir, renombrar objetos y crear y destruir subcontextos.

La operación más usada es lookup().

Le suministramos a lookup() un nombre de un objeto que queremos localizar, y devuelve el objeto unido a ese nombre. Por ejemplo, el siguiente fragmento de código localiza una impresora y envía un documento al objeto impresora para imprimirlo.

Printer printer = (Printer)ctx.lookup("treekiller");
printer.print(report);

Nombres

Cada método del interface Context tiene dos sobrecargas: una que acepta un argumento Name y otra que acepta un nombre java.lang.String. Name es un interface que representa un nombre genérico--una secuecia ordenada de cero o más componentes. Para los métodos del interface Context, un argumento Name que es un ejemplar de CompositeName representa un nombre pegado, por eso podemos nombrar un objeto usando un nombre que expanda varios espacios de nombres. Un argumento Name o de cualquier otro tipo representa un nombre compuesto.

Las sobrecargas que aceptan Name son útiles para aplicaciones que necesitan manipular nombres, es decir, componerlos, comparar componentes, etc.

Un argumento java.lang.String representa un nombre pegado.

Las sobrecargas que aceptan nombres java.lang.String son más útiles para aplicaciones sencillas como aquellas que simplemente leen un nombre y localizan el objeto corespondiente.

Uniones

listBindings() devuelve una enumeración de uniones nombre-a-objeto. Cada unión representada por un ejemplar de la clase Binding.

Una unión es un paquete que contiene el nombre del objeto unido, el nombre de la clase del objeto, y el propio objeto.

list() es similar a listBindings(), excepto en que devuelve una enumeración de NameClassPair.

NameClassPair contiene un nombre de objeto y el nombre de la clase del objeto. list() es útil para aplicaciones como navegadores que quieren descubrir información sobre los objetos unidos con un contexto pero no necesitan realmente los objetos. Aunque listBindings() proporciona la misma información, es potencialmente una operación más costosa.

Referencias

Los objetos se almacenan de diferentes formas en servicios de nombres y directorios. Un servicio que soporta almacenamiento de objetos Java podria soportar el almacenamiento de un objeto en su forma serializada. Sin embargo, algunos servicios de nombres y directorios no soportan el almacenamiento de objetos Java. Además, para algunos objetos del directorio, los programas Java están pero sólo un grupo de aplicaciones puede acceder a ellos. En este caso, un objeto Java serializable podría no ser la representación más apropiada.

Una referencia podría ser una representación muy compacta de un objeto, mientras que su su forma serializada podria contener mucho más estado (puedes ver la lección Conceptos de Nombrado).

El JNDI define la clase Reference para representar una referencia.

Una referencia contiene información sobre cómo construir una copia del objeto.

El JNDI intentará convertir las referencias localizadas en el directorio en objetos Java que pueden ser representados para que los clientes JNDI se hagan la ilusión de que lo que hay almacenado en el directorio son objetos Java.

El Contexto Inicial

En el JNDI, todos las operaciones de nombrado y directorio se realizan en relación a un contexto. No hay raices absolutas. Por lo tanto, JNDI define un contexto incial, InitialContext, que proporciona un punto de arranque para las operaciones de nombrado y directorio. Una vez que tenemos el contexto inicial, podemos usarlo para localizar otros contextos y objetos.

Excepciones

El JNDI define una árbol de clases para excepciones que se pueden lanzar en el curso de las operaciones de nombrado y directorio. La raiz de este árbol de clases es NamingException.

Los programas interesados en tratar con una excepción particular pueden capturar la subclase correspondiente de la excepción. De otra forma, deberian capturar, NamingException.


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