Java Naming and Directory Interface是Java平台的一个标准扩展,提供了一组接口、类和关于命名空间的概念。如同其它很多Java技术一样,JDNI是provider-based的技术,暴露了一个API和一个服务供应接口(SPI)。这意味着任何基于名字的技术都能通过JNDI而提供服务,只要JNDI支持这项技术。JNDI目前所支持的技术包括LDAP、CORBA Common Object Service(COS)名字服务、RMI、NDS、DNS、Windows注册表等等。很多J2EE技术,包括EJB都依靠JNDI来组织和定位实体。服务提供者列表:http://java.sun.com/products/jndi/serviceproviders.html
JDNI通过绑定的概念将对象和名称联系起来。在一个文件系统中,文件名被绑定给文件。在DNS中,一个IP地址绑定一个URL。在目录服务中,一个对象名被绑定给一个对象实体。
JNDI中的一组绑定作为上下文来引用。每个上下文暴露的一组操作是一致的。例如,每个上下文提供了一个查找操作,返回指定名字的相应对象。每个上下文都提供了绑定和撤除绑定名字到某个对象的操作。JNDI使用通用的方式来暴露命名空间,即使用分层上下文以及使用相同命名语法的子上下文。
JNDI的运转
让我们来看看JNDI是如何使用上下文的。首先,建立一个初始上下文。这仅仅是一个可以操纵的起始点。然后,浏览初始上下文中存在的对象、添加、删除对象、在父上下文和子上下文之间来回切换等等。清单A 中的例子示范了如何在文件系统的根目录下建立一个初始上下文并且列出这个上下文的所有对象(文件和目录)。
JNDI
package
import
import
import
import
public
public
Hashtable
String
try{
}
catch(Exception
}
}
}
为了运行的程序你要到http://java.sun.com/products/jndi/downloads/index.html下载JNDI的相关包,然后把两个jar:fscontext.jar和providerutil.jar加入到你的CLASSPATH中.这样就可以运行了.你可以做进一步的操纵如bind,unbind等等.
Context
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.fscontext.RefFSContextFactory");是指明Service
JNDI