stringtranslate.com

Interfaz de directorio y nombres de Java

La interfaz de nombres y directorios de Java (Java Naming and Directory Interface , JNDI ) es una API de Java para un servicio de directorio que permite a los clientes de software Java descubrir y buscar datos y recursos (en forma de objetos Java ) a través de un nombre. Como todas las API de Java que interactúan con sistemas host, JNDI es independiente de la implementación subyacente. Además, especifica una interfaz de proveedor de servicios (Service Provider Interface, SPI) que permite que las implementaciones de servicios de directorio se conecten al marco. [1] La información buscada a través de JNDI puede ser suministrada por un servidor, un archivo plano o una base de datos; la elección depende de la implementación utilizada.

Los usos típicos de JNDI incluyen:

Fondo

Las API de Java RMI y Java EE utilizan la API JNDI para buscar objetos en una red. [3]

La API proporciona:

La parte SPI permite admitir prácticamente cualquier tipo de servicio de nombres o directorio, incluidos:

Sun Microsystems publicó por primera vez la especificación JNDI el 10 de marzo de 1997. [4] A partir de 2006 , la versión actual es JNDI 1.2.

Búsqueda básica

JNDI (Java Naming and Directory Interface) organiza sus nombres en una jerarquía. Un nombre puede ser cualquier cadena, como "com.example.ejb.MyBean". Un nombre también puede ser un objeto que implementa la Nameinterfaz; sin embargo, una cadena es la forma más común de nombrar un objeto. Un nombre se vincula a un objeto en el directorio almacenando el objeto o una referencia al objeto en el servicio de directorio identificado por el nombre.

La API JNDI define un contexto que especifica dónde buscar un objeto. El contexto inicial se utiliza normalmente como punto de partida.

En el caso más simple, se debe crear un contexto inicial utilizando la implementación específica y los parámetros adicionales requeridos por la implementación. El contexto inicial se utilizará para buscar un nombre. El contexto inicial es análogo a la raíz o la parte superior de un árbol de directorios para un sistema de archivos. A continuación, se muestra un ejemplo de creación de un contexto inicial:

Contexto de tabla hashArgs = new Hashtable < String , String > ();     // Primero debe especificar la fábrica de contexto. // Así es como elige entre una implementación de jboss // frente a una implementación de Sun u otros proveedores. contextArgs . put ( Context . INITIAL_CONTEXT_FACTORY , "com.jndiprovider.TheirContextFactory" );   // El siguiente argumento es la URL que especifica dónde está el almacén de datos: contextArgs . put ( Context . PROVIDER_URL , "jndiprovider-database" );   // (Es posible que también tengas que proporcionar credenciales de seguridad)// A continuación, crea el contexto inicial Context myCurrentContext = new InitialContext ( contextArgs );    

Luego se utiliza un contexto para buscar nombres previamente vinculados en ese contexto. Por ejemplo:

MyBean myBean = ( MyBean ) myCurrentContext .lookup ( "com.midominio.MyBean" ) ;    

La alternativa al código anterior es la siguiente:

El objeto Context también se puede configurar agregando el archivo jndi.properties en la ruta de clases que contiene el nombre de la clase de fábrica de contexto inicial y la URL del proveedor. El código anterior se reducirá como se muestra a continuación:

//solo necesita crear un objeto de contexto inicial, intentará leer el archivo jndi.properties desde la ruta de clase. Contexto myCurrentContext = new InitialContext ();    

Luego se utiliza un contexto para buscar nombres previamente vinculados en ese contexto. Por ejemplo:

MyBean myBean = ( MyBean ) myCurrentContext .lookup ( "com.midominio.MyBean" ) ;    

Búsqueda

Los atributos pueden estar asociados a entradas especiales llamadas directorios. Los directorios permiten buscar objetos por sus atributos asociados. Los directorios son un tipo de contexto; restringen el espacio de nombres de forma muy similar a como lo hace una estructura de directorio en un sistema de archivos. [5]

Véase también

Referencias

  1. ^ "Java SE - Tecnologías básicas - Interfaz de nombres y directorios de Java (JNDI)". www.oracle.com . Consultado el 17 de diciembre de 2016 .
  2. ^ "JNDI Resources HOW-TO". Guía del usuario de Apache Tomcat 7. Apache Software Foundation . Consultado el 21 de enero de 2014 .
  3. ^ "Proveedor de servicios de registro JNDI/RMI". docs.oracle.com . Consultado el 17 de diciembre de 2016 .
  4. ^ "SUN MICROSYSTEMS, INC. PRESENTA LA API DE INTERFAZ DE DIRECTORIO Y NOMBRAMIENTO DE JAVA". sun.com . 1997-03-10. Archivado desde el original el 2004-09-08.
  5. ^ "Filtros de búsqueda". docs.oracle.com . Consultado el 17 de diciembre de 2016 .

Enlaces externos