JavaTM 2 Platform
Standard Ed. 6

org.omg.PortableInterceptor
介面 RequestInfoOperations

所有已知子介面:
ClientRequestInfo, ClientRequestInfoOperations, RequestInfo, ServerRequestInfo, ServerRequestInfoOperations

public interface RequestInfoOperations

Interceptor 可存取的請求資訊。

每個截取點都給定了一個物件,Interceptor 可以通過該物件存取請求資訊。客戶端和伺服器端的截取點關注不同的資訊,因此有兩種資訊物件:ClientRequestInfo 傳遞給客戶端的截取點,ServerRequestInfo 傳遞給伺服器端的截取點。但也有兩者都需要的資訊,所以這兩個介面繼承自同一個介面:RequestInfo

另請參見:
ClientRequestInfo, ServerRequestInfo

方法摘要
 Parameter[] arguments()
          返回一個 Parameter 物件陣列,包含將調用的操作上的參數。
 String[] contexts()
          返回一個 String 物件陣列,這些物件描述可以在此操作調用上傳遞的上下文。
 TypeCode[] exceptions()
          返回一個 TypeCode 物件陣列,這些物件描述此操作調用可能拋出的使用者異常的 TypeCode
 Object forward_reference()
          如果 reply_status 屬性為 LOCATION_FORWARD,則包含要將請求轉發到的物件。
 ServiceContext get_reply_service_context(int id)
          返回具有給定 ID 的與應答關聯的服務上下文復本。
 ServiceContext get_request_service_context(int id)
          返回具有給定 ID 的與請求關聯的服務上下文復本。
 Any get_slot(int id)
          返回請求域內 PortableInterceptor.Current 給定槽 (slot) 中的資料。
 String[] operation_context()
          返回一個 String 物件陣列,這些物件包含將在請求上發送上下文。
 String operation()
          返回將被調用的操作的名稱。
 short reply_status()
          描述操作調用結果的狀態。
 int request_id()
          返回唯一地標識啟動的請求/應答序列的 id。
 boolean response_expected()
          指示是否希望回應。
 Any result()
          返回一個 any,它包含該操作調用的結果。
 short sync_scope()
          定義在控制資訊返回到客戶端前請求應前進的距離。
 

方法詳細資訊

request_id

int request_id()
返回唯一地標識啟動的請求/應答序列的 id。請求/應答序列一結束此 ID 即可重用。注意,此 id 不同於 GIOP request_id。如果使用的傳送機制是 GIOP,則這些 ID 很可能是相同的,但是不保證也不要求如此。


operation

String operation()
返回將被調用的操作的名稱。


arguments

Parameter[] arguments()
返回一個 Parameter 物件陣列,包含將調用的操作上的參數。如果沒有參數,則此屬性將是一個 0 長度陣列。

並非所有環境都提供對參數的存取。例如,使用 Java 可移植綁定時參數將不可用。在這些環境中存取此屬性時,將拋出 NO_RESOURCES,並帶有標準次要程式碼 1。

註:對於 DSI/DII 調用參數是可用的。

拋出:
NO_RESOURCES - 如果參數不可用。
另請參見:
PortableInterceptor 套件中關於限制/未實作特性的註釋

exceptions

TypeCode[] exceptions()
返回一個 TypeCode 物件陣列,這些物件描述此操作調用可能拋出的使用者異常的 TypeCode。如果沒有使用者異常,則此方法返回一個長度為 0 的陣列。

並非所有環境都提供對異常列表的存取。例如,使用 Java 可移植綁定時異常列表將不可用。在這些環境中存取此屬性時,將拋出 NO_RESOURCES,並帶有標準次要程式碼 1。

註:異常對於 DSI/DII 調用是可用的。

拋出:
NO_RESOURCES - 如果異常不可用。
另請參見:
PortableInterceptor 套件中關於限制/未實作特性的註釋

contexts

String[] contexts()
返回一個 String 物件陣列,這些物件描述可以在此操作調用上傳遞的上下文。如果沒有上下文,則此方法返回一個長度為 0 的陣列。

並非所有環境都提供對上下文列表的存取。例如,使用 Java 可移植綁定時上下文列表將不可用。在這些環境中存取此屬性時,將拋出 NO_RESOURCES,並帶有標準次要程式碼 1。

註:上下文對於 DSI/DII 調用是可用的。

拋出:
NO_RESOURCES - 如果上下文不可用。
另請參見:
PortableInterceptor 套件中關於限制/未實作特性的註釋

operation_context

String[] operation_context()
返回一個 String 物件陣列,這些物件包含將在請求上發送上下文。

並非所有環境都提供對上下文的存取。例如,使用 Java 可移植綁定時上下文將不可用。在這些環境中存取此屬性時,將拋出 NO_RESOURCES,並帶有標準次程式碼 1。

註:operation_context 對於 DSI/DII 調用是可用的。

拋出:
NO_RESOURCES - 如果操作上下文不可用。
另請參見:
PortableInterceptor 套件中關於限制/未實作特性的註釋

result

Any result()
返回一個 any,它包含該操作調用的結果。如果操作返回型別為空,則此屬性將是包含 TCKind 值為 tk_void 的型別程式碼的 any,並且該 any 不包含任何值。

並非所有環境都提供對結果的存取。例如,使用 Java 可移植綁定時結果將不可用。在這些環境中存取此屬性時,將拋出 NO_RESOURCES,並帶有標準次要程式碼 1。

註:結果對於 DSI/DII 調用是可用的。

拋出:
NO_RESOURCES - 如果結果不可用。
另請參見:
PortableInterceptor 套件中關於限制/未實作特性的註釋

response_expected

boolean response_expected()
指示是否希望回應。

對於客戶端,當 response_expected 為 false 時不返回應答,因此不能調用 receive_reply。不發生異常時調用 receive_other,發生異常時調用 receive_exception

此屬性在客戶端 send_poll 內部為 true。


sync_scope

short sync_scope()
定義在控制資訊返回到客戶端前請求應前進的距離。這已在 Messaging 規範中定義,僅當 response_expected 為 false 時才相關。如果 response_expected 為 true,則 sync_scope 的值是不確定的。此屬性可以是以下值之一: 對於伺服器所有的域而言,將從目標操作調用的返回中創建應答,但不會將該應答返回給客戶端。儘管它不會返回給客戶端,但確實發生了應答,因此將執行正常伺服器端截取點(即 receive_request_service_contextsreceive_requestsend_replysend_exception)。

對於 SYNC_WITH_SERVERSYNC_WITH_TARGET,在調用目標前,伺服器將一個空應答發送回客戶端。此應答將不會被伺服器端的 Interceptor 截取。

另請參見:
PortableInterceptor 套件中關於限制/未實作特性的註釋

reply_status

short reply_status()
描述操作調用結果的狀態。返回值可以是以下值之一: 對於客戶端: 對於伺服器:

另請參見:
SUCCESSFUL, SYSTEM_EXCEPTION, USER_EXCEPTION, LOCATION_FORWARD, TRANSPORT_RETRY

forward_reference

Object forward_reference()
如果 reply_status 屬性為 LOCATION_FORWARD,則包含要將請求轉發到的物件。轉發的請求是否將實際發生是不確定的。


get_slot

Any get_slot(int id)
             throws InvalidSlot
返回請求域內 PortableInterceptor.Current 給定槽 (slot) 中的資料。

如果尚未設置給定槽,則返回一個套件含 TCKind 值為 tk_null 的型別程式碼的 any。

參數:
id - 將返回的槽的 SlotId
返回:
使用給定標識符獲取的槽資料,以 any 的形式存在。
拋出:
InvalidSlot - 如果 ID 定義的不是已分派的槽,則拋出此異常。
另請參見:
Current

get_request_service_context

ServiceContext get_request_service_context(int id)
返回具有給定 ID 的與請求關聯的服務上下文復本。

參數:
id - 將返回的服務上下文的 IOP.ServiceId
返回:
通過給定標識符獲取的 IOP.ServiceContext
拋出:
BAD_PARAM - 如果請求的服務上下文不包含對應於該 ID 的條目,則拋出此異常,並帶有標準次程式碼 26。

get_reply_service_context

ServiceContext get_reply_service_context(int id)
返回具有給定 ID 的與應答關聯的服務上下文復本。

參數:
id - 將返回的服務上下文的 IOP.ServiceId
返回:
具有給定標識符的 IOP.ServiceContext
拋出:
BAD_PARAM - 如果請求的服務上下文不包含對應於該 ID 的條目,則拋出此異常,並帶有標準次要程式碼 26。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only