打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JNDI和LDAP(2)

6.2  使用JNDI

6.2.1  JNDI服务提供者

不 使用服务提供者就不能用JNDI。一个服务提供者就是一组Java类的集合,它支持开发者同目录服务进行通信,其方式类似于JDBC驱动程序与数据库之间 的通信方式。能够用于JNDI的服务提供者必须实现Context接口或Context的扩展接口Directory- Context。

在使用JNDI时,读者只需要了解JNDI,而服务提供者才关注实际的网络协议、编码/解码值等细节。

当 下载SDK软件开发包时,同时就下载了Sun公司的一些现有的服务提供者。这些服务提供者包括LDAP、NIS、COS(CORBA对象服务)、RMI注 册及文件系统的提供者。如:hashtableObj.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.ldapCtx- Fatory")就是表示使用Sun LDAP服务提供者。当然如果要使用IBM服务提供者时就可以用com.ibm.jndi.LDAPCtxFatory来代替 com.sun.jndi.ldap.ldapCtxFatory。

6.2.2  JNDI的包

JNDI 中包括5个包。

·       javax.naming:主要用于命名操作,它包含了命名服务的类和接口,该包定义了Context接口和InitialContext类;

·       javax.naming.directory:主要用于目录操作,它定义了DirContext接口和InitialDir- Context类;

·       javax.naming.event:在命名目录服务器中请求事件通知;

·       javax.naming.ldap:提供LDAP支持;

·       javax.naming.spi:允许动态插入不同实现,为不同命名目录服务供应商的开发人员提供开发和实现的途径,以便应用程序通过JNDI可以访问相关服务。

6.2.3  常用的JNDI操作

常用的JNDI操作如下:

·       void bind(String sName,Object object),绑定:把名称同对象关联的过程。

·       void rebind(String sName,Object object),重新绑定:用来把对象同一个已经存在的名称重新绑定。一般使用rebind()而不使用bind(),因为当有重名的时候 rebind()不会出现异常,而bind()会报异常。

·       void unbind(String sName),释放:用来把对象从目录中释放出来。

·       void lookup(String sName,Object object),查找:返回目录总的一个对象。

·       void rename(String sOldName,String sNewName),重命名:用来修改对象名称绑定的名称。

·       NamingEnumeration listBindings(String sName),清单:返回绑定在特定上下文中指定属性名对象的清单列表,它返回名字、类和对象本身,它用于那些需要对对象进行实际操作的应用。具体使用如下:

//得到初始目录环境的一个引用

Context cntxt = new InitialContext();

//返回绑定在特定上下文中指定属性名对象的清单列表

NamingEnumeration namEnumList = ctxt.listBinding("cntxtName");

//循环列出所有名字、类和对象

while ( namEnumList.hasMore() )  {

    Binding bnd = (Binding) namEnumList.next();

    String sObjName = bnd.getName();

    String sClassName = bnd.getClassName();

    //得到对象

    SomeObject objLocal = (SomeObject) bnd.getObject();

}

·       NamingEnumeration list(String sName)与listBindings(String sName)相似,只是它只返回一系列名字/类映射,它主要是用于上下文浏览应用。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
JNDI 学习
JNDI介绍
Java技术回顾之JNDI(一):JNDI应用实例,Java技术文章,Java系列教程,Java
开发基于JNDI的应用程序
使用JNDI操作LDAP(1)
初识JNDI
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服