Sistema de Nombrado en Java (JNDI) [Parte I]

La lecci�n Operaciones de Nombrado nos mostr� c�mo listar un contexto usando los m�todos Context.list() y Context.listBindings().

Esta secci�n describe c�mo est�s m�todos se ven afectados por las factor�as de objetos.

.�List

Cuando usamos Context.list(), obtenemos una enumeraci�n de NameClassPair.

Podemos llamar a getClassName() sobre cada NameClassPair para obtener el nombre de la clase del objeto con que est� unido.

Por ejemplo, si listamos el contexto que usamos para unir varios objetos en la lecci�n Almacenar Objetos en el Directorio, obtendremos la siguiente salida.

# java List
ou=Groups: javax.naming.directory.DirContext
ou=People: javax.naming.directory.DirContext
cn=Button: java.awt.Button
cn=Flower: Flower
cn=favorite: Fruit
cn=favDrink: javax.naming.directory.DirContext
cn=RefHello: Hello
cn=CorbaHello: javax.naming.directory.DirContext
cn=RmiiiopHello: javax.naming.directory.DirContext
cn=RemoteHello: HelloImpl

Por cada uni�n, el nombre de la clase Java se determin� bas�ndose en la informaci�n almacenada en el directorio, sin que sea necesario cear un ejemplar del objeto. No se ven involucradas las factor�as de objetos.

.�Listar Uniones

Cuando usamos Context.listBindings(), obtendremos una enumeraci�n de Binding.

Podemos invocar a getObject() sobre cada Binding para obtener el objeto en la uni�n. El resultado de getObject() es el mismo que el obtenido por la b�squeda del objeto usando Context.lookup().

Por ejemplo, si listamos las uniones del contexto usado para unir varios objetos en la lecci�n Almacenar Objetos en el Directorio, obtendremos la siguiente salida.

# java -Djava.security.manager -Djava.security.policy=.policy ListBindings
ou=Groups: com.sun.jndi.ldap.LdapCtx: com.sun.jndi.ldap.LdapCtx@1dacd730
ou=People: com.sun.jndi.ldap.LdapCtx: com.sun.jndi.ldap.LdapCtx@1dacd8ae
cn=Button: java.awt.Button: java.awt.Button[button0,0,0,0x0,invalid,label=Push me]
cn=Flower: Flower: pink rose
cn=favorite: Fruit: orange
cn=favDrink: Drink: water
cn=RemoteHello: HelloImpl_Stub: HelloImpl_Stub[RemoteStub [ref: [endpoint:[129.111.111.111:44999](remote),objID.
									[-68dff7b3:d975735a08:-8000, 0]]]]
cn=RefHello: HelloImpl_Stub: HelloImpl_Stub[RemoteStub [ref: [endpoint:[129.111.111.111:45006](remote),objID.
									[2bf4308e:d975745b44:-8000, 0]]]]
cn=CorbaHello: com.sun.CORBA.idl.CORBAObjectImpl: com.sun.CORBA.idl.CORBAObjectImpl:com.sun.CORBA.idl.
									GenericCORBAClientSC@84675dd2
cn=RmiiiopHello: com.sun.CORBA.idl.CORBAObjectImpl: com.sun.CORBA.idl.CORBAObjectImpl:com.sun.CORBA.idl.
									GenericCORBAClientSC@ac6b5dd2

Observa que la entrada "cn=favDrink" y otras pocas tienen un nombre de clase m�s preciso ("Drink", "HelloImpl_Stub").

Esto es porque ejemplarizar un objeto (mediante la correspondiente factor�a de objetos) proporciona m�s informaci�n de la clase. Tambi�n observa que el objeto remoto HelloImpl se ha devuelto c�mo un esqueleto del objeto real.

Nota 1:

Debemos ejecutar este ejemplo usando la Plataforma Java 2, v1.2, o una versi�n superior porque algunas de las factor�as de objetos requieren esta plataforma.

Nota 2:

La opci�n -Djava.security.manager especifica que se usar� el controlador de seguridad por defecto, y la opci�n -Djava.security.policy=.policy especifica qu� fichero .policy se usar� para pol�tica de seguridad. Estas dos opciones son necesarias cuando est�mos listando/buscando objetos java.rmi.Remote. En el fichero de pol�tica, necesitamos conceder permisos para conectar y aceptar conexiones desde el servidor Web y la m�quina en que se est� ejecutando el objeto remoto.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO