|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object org.omg.CORBA.ServerRequest
public abstract class ServerRequest
捕獲對動態框架介面(Dynamic Skeleton Interface,DSI)請求的顯式狀態的物件。此類別是 DSI 的基礎,類似於 DII 中的 Request
物件。
ORB 負責創建具體的請求,並將它傳遞給動態實作例程(Dynamic Implementation Routine,DIR)。動態 servant(一個 DIR)是通過實作 DynamicImplementation
類別創建的,該類別有一個 invoke
方法。此方法接受 ServerRequest
物件。
抽象類別 ServerRequest
定義了一些方法,用來存取請求的方法名稱、參數和上下文,以及將該請求的結果設置為返回值或異常。
存取該請求參數的一個微妙之處在於:DIR 需要提供有關所期望參數的型別資訊,因為沒有關於這些型別的已編譯資訊。此資訊是通過 NVList
提供的,NVList 是 NamedValue
物件列表。每個 NamedValue
物件都包含一個 Any
物件,每個 Any 物件都有一個表示參數型別的 TypeCode
物件。
類似地,還需要為回應、所期望的結果或異常提供型別資訊,因此方法 result
和 except
使用 Any
物件作為參數。
DynamicImplementation
,
NVList
,
NamedValue
建構子摘要 | |
---|---|
ServerRequest()
|
方法摘要 | |
---|---|
void |
arguments(NVList args)
指定方法參數型別並檢索 "in" 和 "inout" 參數值。 |
abstract Context |
ctx()
當操作不是一個屬性存取並且該操作的 IDL 定義中包含上下文表達式時,該操作返回用 IDL 指定的上下文資訊;否則返回 nil Context 參考。 |
void |
except(Any any)
已過時。 使用 set_exception() |
String |
op_name()
已過時。 使用 operation() |
String |
operation()
拋出 org.omg.CORBA.NO_IMPLEMENT 異常。 |
void |
params(NVList params)
已過時。 使用方法 arguments |
void |
result(Any any)
已過時。 使用方法 set_result |
void |
set_exception(Any any)
拋出 org.omg.CORBA.NO_IMPLEMENT 異常。 |
void |
set_result(Any any)
拋出 org.omg.CORBA.NO_IMPLEMENT 異常。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public ServerRequest()
方法詳細資訊 |
---|
@Deprecated public String op_name()
_get_<attribute_name>
和 _set_<attribute_name>
。
public String operation()
org.omg.CORBA.NO_IMPLEMENT
異常。
檢索將被調用的操作的名稱。根據 OMG IDL 的規則,這些名稱在此物件的“最終派生”介面所支持的所有操作中必須是唯一的。注意,用來獲取和設置屬性的操作名稱分別是 _get_<attribute_name>
和 _set_<attribute_name>
。
CORBA
套件中有關未實作特性的註釋@Deprecated public void params(NVList params)
arguments
注意,此方法已過時,使用 arguments
方法替代它。
如果沒有調用 set_exception
方法,則 DIR 必須調用此方法一次,即使該方法簽章不包含任何參數。一旦已經調用 arguments
或 set_exception
方法,則對同一個 ServerRequest
物件調用 arguments
將導致 BAD_INV_ORDER
系統異常。DIR 必須向方法 arguments
傳入使用 TypeCodes 初始化的 NVList 和描述該操作參數型別的 Flag,按照它們在 IDL 規範中出現的順序(從左到右)傳入。使用所提供的 "in" 和 "inout" 參數值,arguments
返回的 NVList 可能不同。如果沒有調用 set_exception
方法,則返回前 DIR 必須提供所返回的 NVList,該列表帶有用於任何 "out" 參數的返回值,DIR 還可以更改用於任何 "inout" 參數的返回值。
params
- NVList
物件形式的方法參數public void arguments(NVList args)
set_exception
方法,則 DIR 必須調用此方法一次,即使該方法簽章不包含任何參數。一旦已經調用 arguments
或 set_exception
方法,則對同一個 ServerRequest
物件調用 arguments
將導致 BAD_INV_ORDER
系統異常。DIR 必須向方法 arguments
傳入使用 TypeCodes 初始化的 NVList 和描述該操作參數型別的 Flag,按照它們在 IDL 規範中出現的順序(從左到右)傳入。使用所提供的 "in" 和 "inout" 參數值,arguments
返回的 NVList 可能不同。如果沒有調用 set_exception
方法,則返回前 DIR 必須提供所返回的 NVList,該列表帶有用於任何 "out" 參數的返回值,DIR 還可以更改用於任何 "inout" 參數的返回值。
args
- NVList 形式的方法參數CORBA
套件中有關未實作特性的註釋@Deprecated public void result(Any any)
set_result
注意,不推薦使用此方法,建議使用 set_result
方法替代它。
如果沒有調用 set_exception
方法,則在調用的方法有一個非 void 結果型別時,必須在 DIR 返回前調用 set_result
方法一次。如果該操作有一個 void 結果型別,則可以有選擇地調用 set_result
方法一次,並使用型別為 tk_void
的 Any
物件作為參數。在調用 arguments
方法之前調用 set_result
方法,或者在調用 set_result
或 set_exception
方法之後調用該方法將導致 BAD_INV_ORDER 異常。當 IDL 操作包含一個上下文表達式,或者傳遞給 arguments 的 NVList 沒有描述客戶端傳遞的所有參數時,在調用 set_result
方法之前沒有調用 ctx
方法將導致 MARSHAL 系統異常。
any
- 套件含將被設置的返回值的 Any
物件public void set_result(Any any)
org.omg.CORBA.NO_IMPLEMENT
異常。
為調用指定任何返回值。如果沒有調用 set_exception
方法,則在調用的方法有一個非 void 結果型別時,必須在 DIR 返回前調用 set_result
方法一次。如果該操作有一個 void 結果型別,則可以有選擇地調用 set_result
方法一次,並使用型別為 tk_void
的 Any
物件作為參數。在調用 arguments
方法之前調用 set_result
方法,或者在調用 set_result
或 set_exception
方法之後調用該方法將導致 BAD_INV_ORDER 異常。當 IDL 操作包含一個上下文表達式,或者傳遞給參數的 NVList 沒有描述客戶端傳遞的所有參數時,調用 set_result
方法(沒有首先調用 ctx
方法)將導致 MARSHAL 系統異常。
any
- 套件含將被設置的返回值的 Any
物件CORBA
套件中有關未實作特性的註釋@Deprecated public void except(Any any)
any
- 套件含異常的 Any
物件public void set_exception(Any any)
org.omg.CORBA.NO_IMPLEMENT
異常。
將給定異常返回給客戶端。此方法由 DIR 隨時調用。傳遞給此方法的 Any
物件必須包含一個系統異常,或者所調用操作 IDL 定義中指定的使用者異常之一。傳入不包含任何異常的 Any
物件將導致拋出 BAD_PARAM 系統異常。傳入未列出的使用者異常將導致 DIR 收到一個 BAD_PARAM 系統異常,或導致客戶端收到一個 UNKNOWN_EXCEPTION 系統異常。
any
- 套件含異常的 Any
物件
BAD_PARAM
- 如果給定 Any
物件不包含異常,或者該異常是一個未列出的使用者異常
UNKNOWN_EXCEPTION
- 如果給定異常是一個未列出的使用者異常,並且 DIR 沒有收到 BAD_PARAM 異常CORBA
套件中有關未實作特性的註釋public abstract Context ctx()
Context
參考。在調用 arguments
方法之前調用 ctx
方法,或者在調用 ctx
、set_result
或 set_exception
方法之後調用該方法都將導致 BAD_INV_ORDER 系統異常。
BAD_INV_ORDER
- 如果 (1) 在調用 arguments
方法之前調用 ctx
方法或 (2) 在調用 set_result
或 set_exception
之後調用 ctx
方法
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。