快速业务通道

在Apache目录服务器中存储Java对象,第2部分:(上) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
象都扩展自 Object 类,所以可 以将字符串值传递给 add() 方法。如果某些属性是多值的,那么可以多次调用属性的 add() 方法来提供 必要的值。

步骤 3D. 创建属性集合

您已经有了所有属性,现在需要将它们放入 Attribute 对象集合中。JNDI 提供了一个叫做 Attributes 的接口,并在叫做 BasicAttributes 的类中提供了该接口的基本实现。您可以实例化一个 BasicAttributes 对象,并多次调用对象的 put() 方法,将所有 Attribute 对象(一次一个地)放入集 合中。

如 清单 4 的步骤 4 所示,接下来将调用带有三个参数的 bind() 方法。带有三个参数的 bind() 方 法与 清单 1 中使用的带有两个参数的该方法类似,第三个参数是刚刚创建的属性集合。

应用程序 3. 存储编组的 Java 对象

在存储 Java 对象的最后这个练习中,我将介绍如何存储编组的 Java 对象,第 1 部分的 “表示编 组 Java 对象” 小节中已经简要讨论过它。

您打算以编组形式存储的 Java 对象应该是可序列化的(就像在 清单 1 的步骤 3 中创建的可序列化 的 MessagingPreferences 对象)。为了进行演示,我采用了同一个 MessagingPreferences 对象来演示 如何编组对象并将它存储在 ApacheDS 中。

首先请参见清单 5 中的 StoreAlicePreferencesInMarshalledForm 应用程序,它演示了在 ApacheDS 中存储已编组 Java 对象的所有步骤:

清单 5. StoreAlicePreferencesInMarshalledForm

public class StoreAlicePreferencesInMarshalledForm {    public StoreAlicePreferencesInMarshalledForm ()    {      try {        //------------------------------------------        //Step1: Setting up JNDI properties for ApacheDS        //------------------------------------------        InputStream inputStream = new FileInputStream ( "ApacheDS.properties");        Properties properties = new Properties();        properties.load(inputStream);        properties.setProperty("java.naming.security.credentials",  "secret");        //------------------------------------------        //Step2: Fetching a DirContext object        //------------------------------------------        DirContext ctx = new InitialDirContext(properties);        //---------------------------------------------        //Step3: Instantiate a Java Object        //---------------------------------------------        MessagingPreferences preferences = new MessagingPreferences();        MarshalledObject mObj= new MarshalledObject(preferences );        //--------------------------------------------        //Step4: Storing Java object in ApacheDS        //--------------------------------------------        String bindContext = "cn=marshalledPreferences,uid=alice,ou=users";        ctx.bind( bindContext, mObj);      } catch (Exception e) {        System.out.println("Operation failed: " + e);      }    }    public static void main(String[] args) {      StoreAlicePreferencesInMarshalledForm storeAlicePref =        new StoreAlicePreferencesInMarshalledForm();    } }

J2SE 将内

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号