JavaTM 2 Platform
Standard Ed. 6

軟體套件 javax.naming

為存取命名服務提供類別和介面。

請參見:
          描述

介面摘要
Context 此介面表示一個命名上下文,它由一組名稱到物件的綁定組成。
Name Name 介面表示一個一般名稱,即一個有序的元件序列。
NameParser 此介面用於解析取自分層的名稱空間的名稱。
NamingEnumeration<T> 此介面用於列舉 javax.naming 和 javax.naming.directory 套件中的方法所返回的列表。
Referenceable 此介面由可以為自身提供 Reference 的物件實作。
 

類別摘要
BinaryRefAddr 此類別表示通信終端位址的二進制形式。
Binding 此類別表示上下文中一個名稱到物件的綁定。
CompositeName 此類別表示一個復合名稱,即一個跨多個名稱空間元件名稱的序列。
CompoundName 此類別表示一個組合名稱,即一個取自層次名稱空間的名稱。
InitialContext 此類別是執行命名操作的初始上下文。
LinkRef 此類別表示一個 Reference,其內容是綁定到上下文中的原子名稱的一個名稱,稱為連接名稱 (link name)。
NameClassPair 此類別表示存在於上下文中的某一綁定的物件名稱和類別名稱對。
RefAddr 此類別表示通信端點的位址。
Reference 此類別表示對存在於命名/目錄系統以外的物件的參考。
StringRefAddr 此類別表示通信終端位址的字元串形式。
 

異常摘要
AuthenticationException 當存取命名或目錄服務發生驗證錯誤時,拋出此異常。
AuthenticationNotSupportedException 當所請求驗證的特定 flavor 不受支持時,拋出此異常。
CannotProceedException 拋出此異常指示操作到達了名稱中的某一點,在該點上操作無法繼續進行。
CommunicationException 當客戶端無法與目錄或命名服務通信時,拋出此異常。
ConfigurationException 當存在配置問題時,拋出此異常。
ContextNotEmptyException 當試圖銷毀一個不為空的上下文時,拋出此異常。
InsufficientResourcesException 當無法使用資源完成所請求的操作時,拋出此異常。
InterruptedNamingException 當正被調用的命名操作已經被中斷時,拋出此異常。
InvalidNameException 此異常指示被指定的名稱不符合命名系統的命名語法。
LimitExceededException 當某一方法因為使用者或系統指定的限制而異常終止時,拋出此異常。
LinkException 此異常用於描述解析連接時遇到的問題。
LinkLoopException 當檢測到的某個循環試圖解析某一連接,或者已達到某一特定於實作的連接計數限制時,拋出此異常。
MalformedLinkException 如果在解析或建構連接時遇到錯誤連接,則拋出此異常。
NameAlreadyBoundException 一些方法拋出此異常來指示因為名稱已經綁定到另一個物件而無法添加某一綁定。
NameNotFoundException 當名稱的元件由於沒有被綁定而無法解析時,拋出此異常。
NamingException 此異常是 Context 和 DirContext 介面中的操作拋出的所有異常的父級類別。
NamingSecurityException 此異常是 Context 和 DirContext 介面中的操作所拋出的與安全有關的異常的父級類別。
NoInitialContextException 當不能創建任何初始上下文實作時,拋出此異常。
NoPermissionException 當試圖執行某一操作,而客戶端沒有執行該操作的權限時,拋出此異常。
NotContextException 當命名操作進行到需要上下文來繼續該操作的某處,而解析的物件不是一個上下文時,拋出此異常。
OperationNotSupportedException 當上下文實作不支持將調用的操作時,拋出此異常。
PartialResultException 拋出此異常指示結果正在返回或者到目前為止只返回了部分結果,並且操作無法完成。
ReferralException 此抽象類別用於表示一個參考異常,該異常是在回應某一參考(比如 LDAP v3 伺服器返回的參考)時產生的。
ServiceUnavailableException 當試圖與目錄或命名服務通信,而該服務不可用時,拋出此異常。
SizeLimitExceededException 當某一方法產生的結果超出與大小有關的限制時,拋出此異常。
TimeLimitExceededException 當某一方法沒有在指定的時間限制內終止時,拋出此異常。
 

軟體套件 javax.naming 的描述

為存取命名服務提供類別和介面。

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

上下文

此套件定義上下文 的概念,由 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

套件規範

JNDI API 規範及相關文檔可在 JNDI documentation 中找到。

從以下版本開始:
1.3

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only