javax.naming

javax.naming

軟體包 javax.naming 為訪問命名服務提供類和接口。 此包定義 Java Naming and Directory InterfaceTM (JNDI) 的命名操作。 JNDI 向使用 Java 程式語言編寫的應用程式提供命名和目錄功能。它被設計成與任何特定的命名或目錄服務實現無關。因此可以使用共同的方式對多種服務(新的、新出現的及已經部署的服務)進行訪問。

基本介紹

  • 中文名:javax.naming
  • 外文名:Java Naming and Directory InterfaceTM 
  • 簡稱:JNDI
  • 類型:程式語言
常見問題,上下文,名稱,綁定,引用,初始上下文,異常,包規範,相關文檔,

常見問題

上下文

此包定義上下文 的概念,由 Context 結構表示。上下文由一組名稱到對象的綁定 組成。Context 是用來查找、綁定、取消綁定和重新命名對象,以及創建和銷毀子上下文的核心接口。
lookup() 是最常使用的操作。當向 lookup() 提供想要查詢的對象的名稱時,它將返回綁定到該名稱的對象。例如,以下代碼段要查找一台印表機並將文檔傳送給該印表機對象列印:
Printer printer = (Printer)ctx.lookup("treekiller");
printer.print(report);

名稱

Context 接口中的每個命名方法都有兩個重載形式:一個接受 Name 參數,另一個接受字元串名稱。Name 是一個表示一般名稱的接口,一般名稱是零個或多個組件的有序序列。對於這些方法,可以使用 Name 表示複合名稱 (CompositeName),從而可以使用跨多個名稱空間的名稱來命名一個對象。
接受 Name 的重載方法對那些需要對名稱進行以下操作的應用程式很有用:組合名稱、比較組件等等。接受字元串名稱的重載方法對那些簡單的應用程式可能更加有用,比如那些只是讀取某一名稱以及查找相應對象的應用程式。

綁定

Binding 類表示一個名稱到對象的綁定。它是一個包含所綁定對象的名稱、對象的類的名稱和對象本身的元組 (tuple)。
Binding 類實際上是 NameClassPair 的子類,由對象的名稱和對象的類名稱組成。在只想要關於對象的類的信息以及不想為獲得對象而額外開銷時,NameClassPair 很有用。

引用

對象以不同方式存儲在命名和目錄服務中。如果對象存儲支持存儲 Java 對象,則它可能支持以序列化形式存儲對象。不過,一些命名和目錄服務不支持存儲 Java 對象。此外,對於目錄中某些對象而言,Java 程式只是訪問它們的一組應用程式。在這種情況下,序列化 Java 對象可能不是最合適的表示形式。JNDI 定義了一個由 Reference 類表示的引用,它包含有關如何構造對象副本的信息。JNDI 將嘗試把從目錄中找到的引用轉換成它們表示的 Java 對象,從而給 JNDI 客戶端製造一種目錄中存儲的是 Java 對象的假象。

初始上下文

在 JNDI 中,所有命名和目錄操作都是相對於上下文執行的。沒有絕對的根。所以 JNDI 定義了一個初始上下文 InitialContext,為命名和目錄操作提供起始點。一旦有了初始上下文,就可以使用它來查找其他上下文和對象。

異常

JNDI 為可能在執行命名和目錄操作期間拋出的異常定義了一個類層次。此類層次的根是 NamingException。需要處理特定異常的程式可以捕獲相應的異常子類。否則,這些程式應該捕獲 NamingException。

包規範

以下文檔可以在 Java 技術站點找到:
JNDI API Document (Postscript)
JNDI API Document (PDF)

相關文檔

有關教程、示例和概述,請參閱:
The JNDI Tutorial
Examples
Executive Summary (Postscript)
Executive Summary (PDF)
從以下版本開始:
1.3

相關詞條

熱門詞條

聯絡我們