|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Objectorg.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。