快速业务通道

在Apache目录服务器中存储Java对象,第1部分 - 深入Apache目录服务器 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
目的是定义一些辅助属性,这些属性在保存 Java 对象 的数据时不是直接有用,但是从目录进行搜索或检索对象的搜索操作时会有帮助。图 20 显示了 javaObject 类:

图 20. javaObject 类

图 20 中显示的 javaObject 类中的属性类型如下所示:

在Apache目录服务器中存储Java对象,第1部分 - 深入Apache目录服务器(15)

时间:2011-08-13 IBM Bilal Siddiqui

一个必需的属性类型,名为 javaClassName,它容纳保存 在 ApacheDS 中的实例所属的类的名称。通常用这个属性查找在 ApacheDS 中保存的具体类的实例。

另一个名为 javaClassNames 的属性类型容纳 Java 对象的所有超类以及对象实现的所有接口的 名称。这个属性会包含大量的值,所以是一个多值属性类型。LDAP 允许用多值属性容纳多个值。可以用 javaClassNames 属性类型搜索实现特定接口的对象或者扩展特定类的对象。

图 20 中显示的 javaCodebase 属性类型保存 Java 对象的类定义所在的位置。这是个可选属性,如果应用程序需要从 ApacheDS 读取类的位置以便装入类定义的时候才用这个属性。

javaDoc 属性类型也是可选的,容 纳 ApacheDS 中保存的类实例所属的类的 Java 文档的 URL。

可以猜到,description 属性类型 保存类的文本描述。

代表序列化的 Java 对象

请注意,属性类型 javaObject 中没有一个 属性类型保存代表被保存对象的实际八进制字符串。这就是为什么 javaObject 类保持抽象的原因,也是 为什么不能直接用它创建数据条目的原因。LDAP 用这种方式定义 javaObject 类,是因为 LDAP 允许用 不同形式保存 Java 对象(例如,序列化形式的对象或编组形式的对象)。每种对象代表形式都有自己的 对象类,扩展自 javaObject 类。

名为 javaSerializedObject 的对象类(图 21 所示)扩展了 javaObject 类,只添加了一个叫做 javaSerializedData 的属性。javaSerializedData 属性包含 Java 对象实际的序列化形式。

图 21 显示的 javaSerializedObject 类是个辅助对象类,至于原因马 上就会解释:

图 21. javaSerializedObject 类

现在请看图 22,这 是一个叫做 MessagingPreferences 的序列化 Java 对象,保存在 ApacheDS,如 JXplorer 的屏幕所示 :

图 22. 保存在 ApacheDS 中的 Alice 的 MessagingPreferences 对象

图 22 中的 MessagingPreferences 对象代表用户 Alice 想使用的选项设置。这是 MessagingPreferences 对 象看起来是 Alice 数据条目对象(在本文前面创建的)的子对象的原因。

在Apache目录服务器中存储Java对象,第1部分 - 深入Apache目录服务器(16)

时间:2011-08-13 IBM Bilal Siddiqui

使用不同的对象类

如图 22 所示,MessagingPreferences 数据条目对象使用四个对象类:javaSerializedObject、 javaObject、javaContainer 和 top。您能猜出 MessagingPreferences 对象为什么需要这四个类么?

MessagingPreferences 数据条目对象需要 javaSerializedObject 类的原因是要保存 MessagingPreferences 对象的序列化形式。

需要 javaObject 类是因为 javaSerializedObject 类扩展了 javaObject 类。这意味着只要数据条目对象使用 javaSerializedObject 类,也就会使用 javaObject 类。

需要 javaContainer 类是因为其他三个对象类(javaSerializedObject、 javaObject 和 top)都不是结构性类。ApacheDS 中的每个数据条目对象都需要使用一个结构性类。Java 对象可以使用 javaContainer 或其他任何结构性类(例如 person 对象类)。LDAP 希望把 Java 对象条 目与结构性类(像 javaContainer 或 person 对象类)混合,所以 LDAP 规范把 javaSerializedObject 类定义成辅助类。

最后,MessagingPreferences 数据条目对象需要 to

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号