在Apache目錄伺服器中儲存Java對象,第2部分:(上)

來源:互聯網
上載者:User

在 ApacheDS 中儲存、搜尋和檢索 Java 對象

簡介:在第 2 部分中將介紹如何在 Apache 目錄伺服器 (ApacheDS) 中儲存 Java™ 對象, Bilal Siddiqui 將提供 9 個應用程式範例,示範在 第 1 部分 中學習的概念。除 了介紹使用 ApacheDS 儲存、搜尋、檢索和修改 Java 對象的所有步驟之外,Bilal 還將在總結全文時提 供一個可重用的 Java 類,該類可以使用 LDAP 模式組件在 ApacheDS 中將這些功能組合在一起。

在 第 1 部分 中,我介紹了在 ApacheDS 中儲存 Java 對象的概念方面的基礎,解釋了 ApacheDS 的 核心架構,並討論了它實現目錄服務和可插入協議支援的方式。我還介紹了一些 LDAP 概念和術語,解釋 了 ApacheDS 如何? LDAP 協議,並介紹了用來在 ApacheDS 中儲存和操縱對象的各種組件。最後,討 論了 Java 對象和 RMI 的基礎,要想在 ApacheDS 中儲存和檢索 Java 對象,就必須理解它們。我還引 入了一個應用程式範例 —— 一個面向製造企業的資料管理系統,並用它示範文中討論的一些概念。

在本系列的第 2 部分,我幾乎完全依靠樣本(總共有 9 個樣本)。這些樣本基於第 1 部分介紹的數 據管理系統,它們的作用是讓您瞭解如何在 ApacheDS 中儲存、搜尋、檢查和更新 Java 對象。

如果還沒有下載和安裝 ApacheDS,那麼一定要在開始之前 下載和安裝 ApacheDS 和 JXplorer。可以 下載 文章的完整原始碼。

注意!

請注意,要跟上本文中的樣本,必須理解基本的 LDAP 術語和概念,例如專有名稱 (DN)、相對專有名 稱 (RDN)、命名內容、對象類和屬性類型。如果還不熟悉這些術語,請在繼續之前閱讀 第 1 部分。

應用程式 1. 儲存 Java 對象

我先從幾個應用程式開始,示範如何在 ApacheDS 中儲存 Java 對象。出於這個目的,需要使用 Java 命名和目錄介面 (JNDI),它提供了操作目錄中的對象和屬性的介面和方法。請參閱 在 Apache 目錄服務 器中儲存 Java 對象,第 1 部分,獲得 ApacheDS 如何使用 JNDI 介面公開目錄服務的討論。

JNDI 不是特定於 LDAP 的介面,因此可以擁有針對任何目錄服務類型的 JNDI 實現。如果想實現自己 的目錄服務並用 JNDI 公開它的功能,則需要為目錄服務實現 JNDI 介面。注意,Java 2 標準版 (J2SE) 提供了 LDAP 的用戶端 JNDI 實現,可以用它與 ApacheDS 對話。在我的討論中,我將使用這個用戶端實 現。

清單 1 是一個名為 StoreAlicePreferences 的簡單應用程式。我將用這個應用程式介紹如何將使用者 Alice 的選項作為 Java Object Storage Service到 ApacheDS 中。

清單 1. StoreAlicePreferences

public class StoreAlicePreferences {

   public StoreAlicePreferences ()
   {
     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 ();

       //------------------------------------------
       //Step4: Store the Java object in ApacheDS
       //------------------------------------------
       String bindContext = "cn=preferences,uid=alice,ou=users";
       ctx.bind( bindContext, preferences);
     } catch (Exception e) {
       System.out.println("Operation failed: " + e);
     }
   }

   public static void main(String[] args) {
     StoreAlicePreferences storeAlicePref = new StoreAlicePreferences();
   }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.