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 NamingContextExtNamingContext(它包含一組名稱綁定,在這些名稱綁定中,每個名稱都是唯一的)的擴展,並且是互操作命名服務 (Interoperable Naming Service) 的一部分。
NamingContextExtOperations NamingContextExtNamingContext(它包含一組名稱綁定,在這些名稱綁定中,每個名稱都是唯一的)的擴展,並且是互操作命名服務 (Interoperable Naming Service) 的一部分。
NamingContextOperations 命名上下文是包含一組名稱綁定的物件,在這些名稱綁定中,每個名稱都是唯一的。
 

類別摘要
_BindingIteratorImplBase  
_BindingIteratorStub BindingIterator 介面允許客戶端使用 next_one 或 next_n 操作在綁定上進行迭代。
_NamingContextExtStub NamingContextExtNamingContext(它包含一組名稱綁定,在這些名稱綁定中,每個名稱都是唯一的)的擴展,並且是互操作命名服務 (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 NamingContextExtNamingContext(它包含一組名稱綁定,在這些名稱綁定中,每個名稱都是唯一的)的擴展,並且是互操作命名服務 (Interoperable Naming Service) 的一部分。
NamingContextExtHolder NamingContextExtNamingContext(它包含一組名稱綁定,在這些名稱綁定中,每個名稱都是唯一的)的擴展,並且是互操作命名服務 (Interoperable Naming Service) 的一部分。
NamingContextExtPOA NamingContextExtNamingContext(它包含一組名稱綁定,在這些名稱綁定中,每個名稱都是唯一的)的擴展,並且是互操作命名服務 (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 類別,這些類別可視為輔助類別。在這裡提供有關介面 NamingContextBindingIterator 所使用的已產生輔助類別的註釋。

NamingContextBindingIterator 所使用的類別

以下是命名服務所使用的類別。(以下討論為此處列出的每個類別所產生的 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 類別:IntHolderShortHolderStringHolder,等等。

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

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

Helper 類別

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

Helper 類別中只有一種供應用開發人員使用的方法。narrow 方法。只有從 IDL 介面映射的 Java 介面才具有包含 narrow 方法的 helper 類別,因此在 CosNaming 套件中,只有類別 NamingContextHelperBindingIteratorHelper 才具有 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