|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個軟體套件 下一個軟體套件 | 框架 無框架 | |||||||||
請參見:
描述
| 介面摘要 | |
|---|---|
| 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 | 命名上下文是包含一組名稱綁定的物件,在這些名稱綁定中,每個名稱都是唯一的。 |
為 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。
這兩個介面是:
這兩個介面提供了一些方法,有些用來綁定/取消綁定名稱和物件參考,有些用來檢索綁定的物件參考,還有些用來迭代綁定列表。NamingContext 介面提供命名服務的主要功能,BindingIterator 提供迭代名稱/物件參考綁定列表的各種方法。
NamingContext 和 BindingIterator 所使用的已產生輔助類別的註釋。
NamingContext 和 BindingIterator 所使用的類別public final class NameComponent - 名稱的建構塊 (building block)。(名稱被綁定到命名上下文中的物件參考。)
名稱是一個或多個 NameComponent 物件所組成的陣列。帶有單個 NameComponent 的名稱稱為簡單名稱;帶有多個 NameComponent 物件的名稱稱為組合名稱。
NameComponent 物件由兩個欄位組成:
id - 用作標識符的 String
kind - 可用於任何描述性內容的 String。其重要性在於,可以使用它來描述物件,但不會影響到語法。例如,C 程式語言使用這樣的語法約定:將擴展名 ".c" 附加到檔案名上指示其為源程式碼檔案。在 NameComponent 物件中,kind 欄位可用於描述物件型別,而不是檔案擴展名或其他語法約定。kind 欄位值的範例如下:字元串 "c_source"、"object_code"、"executable"、"postscript" 和 ""。kind 欄位為空字元串也很常見。
在名稱中,每個 NameComponent 物件(除了最後一個)都表示一個 NamingContext 物件;最後一個 NameComponent 物件表示綁定的物件參考。這類似於路徑名,路徑名中最後一個名稱是檔案名,而前面的所有名稱都是目錄名。
public final class Binding - 將名稱與物件參考或命名上下文關聯的物件。Binding 物件具有兩個欄位:
binding_name - 表示綁定名稱的一個或多個 NameComponent 物件所組成的陣列
binding_type - BindingType 物件,該物件指示綁定發生在名稱和物件參考之間,還是發生在名稱和命名上下文之間
NamingContext 介面具有一些方法,其中有些用來綁定/取消綁定名稱與物件參考或命名上下文,有些用來列舉綁定,還有些用來解析綁定(給定名稱時,resolve 方法返回綁定到它的物件參考)。
public final class BindingType - 一個物件,指定給定的 Binding 物件是名稱與物件參考(即非命名上下文)之間的綁定還是名稱與命名上下文之間的綁定。
BindingType 類別由兩個方法和四個常數組成。這些常數中有兩個是 BindingType 物件,另外兩個是 int。
BindingType 物件可以傳遞到 Binding 類別的建構子,也可以用作參數或返回值。這些 BindingType 物件是:
public static final BindingType nobject - 指示是與物件參考之間的綁定
public static final BindingType ncontext - 指示是與命名上下文之間的綁定
int 常數可以提供給 from_int 方法以創建 BindingType 物件,也可以作為 value 方法的返回值。這些常數是:
public static final int _nobject
public static final int _ncontext
from_int 方法帶有的參數是 _nobject 或 _ncontext 之外的任何內容,則它將拋出異常 org.omg.CORBA.BAD_PARAM。
用法如下:
BindingType btObject = from_int(_nobject);
BindingType btContext = from_int(_ncontext);
btObject 變數參考 BindingType 物件,該物件初始化後表示一個與物件參考的綁定。btContext 變數參考 BindingType 物件,該物件初始化後表示一個與 NamingContex 物件的綁定。
value 方法返回 _nobject 或 _ncontext,因此在以下程式碼行中,變數 bt 將包含 _nobject 或 _ncontext:
int bt = BindingType.value();
value 欄位分派值。這允許它執行 OUT 和 INOUT 參數的功能。
以下是為 org.omg.CosNaming 套件產生的 holder 類別:
NamingContextHolder
BindingIteratorHolder
BindingHolder
BindingListHolder
BindingTypeHolder
NameComponentHolder
NameHolder
注意,在 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 類別都具有至少兩個建構子和一個欄位:
value 欄位 - 用作 OUT 或 INOUT 參數的型別的實例。例如,NamingContextHolder 的 value 欄位將是一個 NamingContext 物件。
BindingHolder 物件的 value 欄位將被設置為 null,因為此為物件的預設值。其他預設值有用於 boolean 的 false、用於數值和 char 型別的 0 和用於物件參考的 null。
value 欄位的建構子
為使用者定義型別(Java 類別)創建的 holder 類別另外還有三種方法,但是應用程序開發人員不直接使用它們。
Helper 類別中只有一種供應用開發人員使用的方法。narrow 方法。只有從 IDL 介面映射的 Java 介面才具有包含 narrow 方法的 helper 類別,因此在 CosNaming 套件中,只有類別 NamingContextHelper 和 BindingIteratorHelper 才具有 narrow 方法。
public static NamingContext narrow(org.omg.CORBA.Object obj) - 將給定的 CORBA 物件轉換為 NamingContext 物件
public static BindingIterator narrow(org.omg.CORBA.Object obj) - 將給定的 CORBA 物件轉換為 BindingIterator 物件
org.omg.CosNaming.NamingContextPackage 套件org.omg.CosNaming 套件中使用的異常以及 NotFoundReason 類別(為 NotFound 異常提供原因)提供 Helper 和 Holder 類別。
為以下異常提供 Helper 和 Holder 類別:
AlreadyBound
CannotProceed
InvalidName
NotEmpty
NotFound
CosNaming 套件的實作遵守 OMG COSNaming 規範。換句話說,Sun 命名服務中的 API 根據 OMG 提供的命名服務指南實作。因此,如果第三方供應商已實作與 OMG 相容的命名服務,則可以在 Sun 的 CosNaming 實作和第三方供應商的實作之間切換。然而,不同供應商實作命名服務的方式可能稍有不同(如異常字元串不同),理解這一點很重要。
COSNaming 實作也是可能的。以下是要執行的步驟:
/tmp/services,並將以下內容置於其中:NameService, <Stringified IOR of the Root Naming Context>。
此操作將 NameService 與要使用的 CosNaming 實作的根命名上下文 (Root Naming Context) 相關聯。
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 概觀,請參閱:
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個軟體套件 下一個軟體套件 | 框架 無框架 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。