JavaTM 2 Platform
Standard Ed. 6

軟體套件 org.omg.CosNaming

為 Java IDL 提供命名服務。

請參見:
          描述

介面摘要
BindingIterator BindingIterator 介面允許客戶端使用 next_one 或 next_n 迭代綁定。
BindingIteratorOperations BindingIterator 介面允許客戶端使用 next_one 或 next_n 迭代綁定。
NamingContext 命名上下文是包含一組名稱綁定的物件,在這些名稱綁定中,每個名稱都是唯一的。
NamingContextExt NamingContextExt 是 NamingContext(它包含一組名稱綁定,在這些名稱綁定中,每個名稱都是唯一的)的擴展,並且是互操作命名服務 (Interoperable Naming Service) 的一部分。
NamingContextExtOperations NamingContextExt 是 NamingContext(它包含一組名稱綁定,在這些名稱綁定中,每個名稱都是唯一的)的擴展,並且是互操作命名服務 (Interoperable Naming Service) 的一部分。
NamingContextOperations 命名上下文是包含一組名稱綁定的物件,在這些名稱綁定中,每個名稱都是唯一的。
 

類別摘要
_BindingIteratorImplBase  
_BindingIteratorStub BindingIterator 介面允許客戶端使用 next_one 或 next_n 操作在綁定上進行迭代。
_NamingContextExtStub NamingContextExt 是 NamingContext(它包含一組名稱綁定,在這些名稱綁定中,每個名稱都是唯一的)的擴展,並且是互操作命名服務 (Interoperable Naming Service) 的一部分。
_NamingContextImplBase  
_NamingContextStub 命名上下文是包含一組名稱綁定的物件,在這些名稱綁定中,每個名稱都是唯一的。
Binding org/omg/CosNaming/Binding.java。
BindingHelper org/omg/CosNaming/BindingHelper.java。
BindingHolder org/omg/CosNaming/BindingHolder.java。
BindingIteratorHelper BindingIterator 介面允許客戶端使用 next_one 或 next_n 操作迭代綁定。
BindingIteratorHolder BindingIterator 介面允許客戶端使用 next_one 或 next_n 操作迭代綁定。
BindingIteratorPOA BindingIterator 介面允許客戶端使用 next_one 或 next_n 操作迭代綁定。
BindingListHelper 綁定列表。
BindingListHolder 綁定列表。
BindingType 指定給定的綁定對應於物件(非命名上下文的物件)還是命名上下文。
BindingTypeHelper 指定給定的綁定對應於物件(非命名上下文的物件)還是命名上下文。
BindingTypeHolder 指定給定的綁定是物件(非命名上下文的物件)的還是命名上下文的。
IstringHelper org/omg/CosNaming/IstringHelper.java。
NameComponent org/omg/CosNaming/NameComponent.java。
NameComponentHelper org/omg/CosNaming/NameComponentHelper.java。
NameComponentHolder org/omg/CosNaming/NameComponentHolder.java。
NameHelper 名稱是名稱元件的序列。
NameHolder 名稱是名稱元件的序列。
NamingContextExtHelper NamingContextExt 是 NamingContext(它包含一組名稱綁定,在這些名稱綁定中,每個名稱都是唯一的)的擴展,並且是互操作命名服務 (Interoperable Naming Service) 的一部分。
NamingContextExtHolder NamingContextExt 是 NamingContext(它包含一組名稱綁定,在這些名稱綁定中,每個名稱都是唯一的)的擴展,並且是互操作命名服務 (Interoperable Naming Service) 的一部分。
NamingContextExtPOA NamingContextExt 是 NamingContext(它包含一組名稱綁定,在這些名稱綁定中,每個名稱都是唯一的)的擴展,並且是互操作命名服務 (Interoperable Naming Service) 的一部分。
NamingContextHelper 命名上下文是包含一組名稱綁定的物件,在這些名稱綁定中,每個名稱都是唯一的。
NamingContextHolder 命名上下文是包含一組名稱綁定的物件,在這些名稱綁定中,每個名稱都是唯一的。
NamingContextPOA 命名上下文是包含一組名稱綁定的物件,在這些名稱綁定中,每個名稱都是唯一的。
 

軟體套件 org.omg.CosNaming 的描述

為 Java IDL 提供命名服務。物件請求代理守護程序(Object Request Broker Daemon,ORBD)還包括瞬態和持久命名服務。

該套件及其全部類別和介面都是通過在 nameservice.idl 檔案上運行 idlj 工具產生的,該檔案是用 OMG IDL 編寫的模組。

套件規範

有關 Java[tm] Platform, Standard Edition 6 ORB 遵守的官方規範的受支持部分的明確列表,請參閱 Official Specifications for CORBA support in Java[tm] SE 6。

介面

org.omg.CosNaming 套件包含兩個公共介面和若干輔助類別。

這兩個介面是:

這兩個介面提供了一些方法,有些用來綁定/取消綁定名稱和物件參考,有些用來檢索綁定的物件參考,還有些用來迭代綁定列表。NamingContext 介面提供命名服務的主要功能,BindingIterator 提供迭代名稱/物件參考綁定列表的各種方法。

輔助類別

為了將 OMG IDL 介面映射到 Java 程式語言,idlj 編譯器創建了一些 Java 類別,這些類別可視為輔助類別。在這裡提供有關介面 NamingContext 和 BindingIterator 所使用的已產生輔助類別的註釋。

NamingContext 和 BindingIterator 所使用的類別

以下是命名服務所使用的類別。(以下討論為此處列出的每個類別所產生的 helper 和 holder 類別。)

Holder 類別

OMG IDL 使用 OUT 和 INOUT 參數從操作返回值。到 Java 程式語言的映射(不具有 OUT 和 INOUT 參數)為每個型別創建一個特殊類別,稱為 holder 類別。可以將 holder 類別的實例作為參數傳遞給 Java 方法,並可以為該實例的 value 欄位分派值。這允許它執行 OUT 和 INOUT 參數的功能。

以下是為 org.omg.CosNaming 套件產生的 holder 類別:

注意,在 org.omg.CORBA 套件中,每個基本 Java 型別都有一個 holder 類別:IntHolder、ShortHolder、StringHolder,等等。

另請注意,即使不存在 Name 類別,也會存在一個 NameHolder 類別;類似地,即使不存在 BindingList 類別,也會存在一個 BindingListHolder 類別。出現這種現象是因為在 OMG IDL 介面中,Name 和 BindingList 都是 typedef。不存在從 IDL typedef 到 Java 結構的映射,但是如果 typedef 用於序列或陣列,則會產生 holder 類別。與映射到 Java 程式語言一樣,Name 是 NameComponent 物件陣列,BindingList 是 Binding 物件陣列。 所有 holder 類別都具有至少兩個建構子和一個欄位:

為使用者定義型別(Java 類別)創建的 holder 類別另外還有三種方法,但是應用程序開發人員不直接使用它們。

Helper 類別

Helper 類別是為 OMG IDL 介面中所有使用者定義型別產生的,提供操作這些型別所需的靜態方法。

Helper 類別中只有一種供應用開發人員使用的方法。narrow 方法。只有從 IDL 介面映射的 Java 介面才具有包含 narrow 方法的 helper 類別,因此在 CosNaming 套件中,只有類別 NamingContextHelper 和 BindingIteratorHelper 才具有 narrow 方法。

org.omg.CosNaming.NamingContextPackage 套件

此套件為 org.omg.CosNaming 套件中使用的異常以及 NotFoundReason 類別(為 NotFound 異常提供原因)提供 Helper 和 Holder 類別。

為以下異常提供 Helper 和 Holder 類別:

命名服務相容性

Sun CosNaming 套件的實作遵守 OMG COSNaming 規範。換句話說,Sun 命名服務中的 API 根據 OMG 提供的命名服務指南實作。因此,如果第三方供應商已實作與 OMG 相容的命名服務,則可以在 Sun 的 CosNaming 實作和第三方供應商的實作之間切換。然而,不同供應商實作命名服務的方式可能稍有不同(如異常字元串不同),理解這一點很重要。

第三方命名服務用法說明

儘管我們鼓勵使用出自同一個供應商的 ORB 和 ORB 服務,但使用 Sun 的 RMI-IIOP ORB 插入第三方的 COSNaming 實作也是可能的。以下是要執行的步驟:
  1. 為 Bootstrap 伺服器創建屬性檔案,並在該檔案中給出兩個條目。例如,可以將此屬性檔案稱為 /tmp/services,並將以下內容置於其中:NameService, <Stringified IOR of the Root Naming Context>。

    此操作將 NameService 與要使用的 CosNaming 實作的根命名上下文 (Root Naming Context) 相關聯。

  2. 使用以下命令啟動獨立的 Bootstrap 伺服器:
          
          java -classpath $(CLASSPATH)
          com.sun.corba.ee.internal.CosNaming.BootstrapServer -InitialServicesFile
          "/tmp/services" [-ORBInitialPort port]
          
      

    注意,位於命令末尾的方括號指示指定一個可選的埠號號。

這時,如果應用程序調用 org.omg.CORBA.ORB.resolve_initial_references 方法,則 CORBA 進程將聯繫 Bootstrap 伺服器來獲取根命名上下文。

套件規範

相關文檔

有關如何使用 CosNaming API 的概觀和範例,請參閱:

有關 Java IDL 概觀,請參閱:

從以下版本開始:
JDK1.3

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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