|
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。