En esta página: Métodos de Localización El ejemplo de espacio de nombres plano usa almacenamiento en memoria; no soporta persistencia. Si una implementación de contexto soporta persistencia o no, está determinado por el servicio de nombres/directorio subyacente o los requerimientos del proveedor de servicio. Aquí está la implementación de lookup(): public Object lookup(Name name) throws NamingException { if (name.isEmpty()) { // Ask to look up this context itself; create and return // a new instance that has its own independent environment. return (createCtx(myEnv)); } // Extract the components that belong to this namespace String nm = getMyComponents(name); // Find the object in the internal hash table Object answer = bindings.get(nm); if (answer == null) { throw new NameNotFoundException(name + " not found"); } return answer; } De acuerdo a la especificación JNDI, una lookup() de un nombre vacío debería devolver una copia del propio contexto. Después de extraer el componente que pertenece a ese espacio de nombres, la implementación procede a buscar la unión nombrada desde su estructura de datos interna-- una hashtable. Si no la encuentra, lanza una NameNotFoundException. En una implementación real, accederíamos al servicio de nombres/directorio subyacente en lugar de acceder al hashtable. Este ejemplo no sopota enlaces de referencias, por eso este método no busca los LinkRefs o los trata especialmente. LookupLink Esta definición de ejemplo de lookupLink() es la misma que su definición de lookup(). Este ejemplo no soporta enlaces de referencias. Puedes ver una descripción de cómo soportar enlaces de referencia en la lección Miscelánea.
|