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. |