在 Apache 目录服务器中存储 Java 对象,第 2 部分:在 ApacheDS 中存储、搜索和检索 Java 对象(下)
2010-04-19 00:00:00 来源:WEB开发网清单 10 的前 15 个步骤与前面的示例类似。在这些步骤中,只是搜索并提取要更新的 Java 对象。在后面的步骤中,将更新和存储对象。
更新和存储 Java 对象
在步骤 16 中,通过调用 Java 对象上的方法,更新 Java 对象中包含的数据。数据更新之后,需要存储 Java 对象编辑过的版本。在执行这个操作之前,需要做两件事:
获得命名上下文:更新现有条目,这意味着您想把已更新的数据写入它以前所在的命名上下文中。要做到这一点,则需要知道已更新条目的命名上下文。将搜索上下文(用来搜索对象的上下文)与对象的 RDN 结合,就可以形成 Java 对象的命名上下文。在 清单 10 的步骤 17 中可以看到这点。
将所有属性写入已更新的 Java 对象:在将更新的 Java 对象写回 ApacheDS 时,是在同一命名上下文上写入新的数据条目。所有与数据条目有关的属性都将丢失。所以,需要将数据条目的所有属性写回已更新的 Java 对象。在清单 10 的步骤 18 中,我的处理是从搜索结果读取所有属性,并将它们包装在属性集合中。
最后,在步骤 19 中调用 DirContext.rebind() 方法。rebind() 方法接收的参数就是在 StoreBobPreferences 应用程序的 清单 4 的步骤 4 中传递给带有三个参数的 bind() 方法的参数。
bind() 和 rebind() 方法之间惟一的区别是 rebind() 方法将数据条目存储在现有数据条目已经占据的命名上下文中,从而有效地用新数据更新现有条目。
应用程序 9. 综合在一起
总结这篇文章时,我将用最后一个应用程序把迄今为止学到的所有概念都组合到一个简单的、可重用的对象中,这个对象可以在 ApacheDS 中存储、搜索、删除和更新 Java 对象。LDAP4JavaObjects 类如清单 11 所示:
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››Apache中改变php.ini的路径
- ››Apache2.2与Tomcat6整合及虚拟主机配置
- ››Apache+php+mysql在windows下的安装与配置图解
- ››服务器群集:Windows 2000 和 Windows Server 200...
- ››服务器维护经验谈 图解DHCP故障排除
- ››Apache+Subversion完美结合,CentOS下实现版本控制...
- ››Apache HTTPServer2.2.16 发布
- ››Apache Tomcat 6.0.29 (稳定版)
- ››Apache HTTP Server 2.3.6 alpha 发布
- ››Apache+Subversion如何实现版本控制
- ››Apache+Subversion完美结合
更多精彩
赞助商链接