JavaTM 2 Platform
Standard Ed. 6

org.omg.PortableInterceptor
介面 ClientRequestInfoOperations

所有父級介面:
RequestInfoOperations
所有已知子介面:
ClientRequestInfo

public interface ClientRequestInfoOperations
extends RequestInfoOperations

客戶端請求 interceptor 可存取的請求資訊。

ClientRequestInfo 上的某些屬性和操作並不是對所有的截取點都有效。下表展示了每個屬性或操作的有效性。如果無效,則試圖存取它將導致拋出 BAD_INV_ORDER,並帶有標準次要程式碼 14。

  send_request send_poll receive_reply receive_exception receive_other
繼承自 RequestInfo:

request_id

operation

arguments

1

exceptions

contexts

operation_context

result

response_expected

sync_scope

reply_status

forward_reference

2

get_slot

get_request_service_context

get_reply_service_context

特定於 ClientRequestInfo:

target

effective_target

effective_profile

received_exception

received_exception_id

get_effective_component

get_effective_components

get_request_policy

add_request_service_context

  1. ClientRequestInfo 傳遞給 send_request 時,對於每個參數(無論它是 in、inout 還是 out),列表中都有一個對應的條目。但只有 in 和 inout 參數可用。
  2. 如果 reply_status 屬性不是 LOCATION_FORWARD,則存取此屬性將拋出 BAD_INV_ORDER,並帶有標準次要程式碼 14。

另請參見:
ClientRequestInterceptor

方法摘要
 void add_request_service_context(ServiceContext service_context, boolean replace)
          允許 Interceptor 將服務上下文添加到請求。
 TaggedProfile effective_profile()
          返回將用來發送請求的配置檔案。
 Object effective_target()
          返回實際調用操作的物件。
 TaggedComponent get_effective_component(int id)
          返回為此請求選擇的配置檔案中帶有給定 ID 的 IOP.TaggedComponent
 TaggedComponent[] get_effective_components(int id)
          返回為此請求選擇的配置檔案中具有給定 ID 的帶標記元件所組成的陣列。
 Policy get_request_policy(int type)
          返回此操作實行的給定策略。
 String received_exception_id()
          返回將向客戶端返回的異常的存儲資源庫 id。
 Any received_exception()
          返回一個 any,它包含要向客戶端返回的異常。
 Object target()
          返回客戶端調用以執行操作的物件。
 
從介面 org.omg.PortableInterceptor.RequestInfoOperations 繼承的方法
arguments, contexts, exceptions, forward_reference, get_reply_service_context, get_request_service_context, get_slot, operation_context, operation, reply_status, request_id, response_expected, result, sync_scope
 

方法詳細資訊

target

Object target()
返回客戶端調用以執行操作的物件。

另請參見:
effective_target()

effective_target

Object effective_target()
返回實際調用操作的物件。如果 reply_statusLOCATION_FORWARD,則後續請求中 effective_target 將包含轉發的 IOR,而目標保持不變。

另請參見:
target()

effective_profile

TaggedProfile effective_profile()
返回將用來發送請求的配置檔案。如果此操作的物件發生了位置轉發,並且該物件的配置檔案因此而發生了更改,則此配置檔案即為用來定位的配置檔案。


received_exception

Any received_exception()
返回一個 any,它包含要向客戶端返回的異常。

如果異常是不能插入 any 的使用者異常(例如,該異常是未知的或綁定不提供 TypeCode),則此屬性將是一個套件含系統異常 UNKNOWN 並帶有標準次要程式碼 (minor code) 1 的 any。但是,異常的存儲資源庫 id 在 received_exception_id 屬性中可用。

另請參見:
received_exception_id()

received_exception_id

String received_exception_id()
返回將向客戶端返回的異常的存儲資源庫 id。

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

get_effective_component

TaggedComponent get_effective_component(int id)
返回為此請求選擇的配置檔案中帶有給定 ID 的 IOP.TaggedComponent

如果給定的元件 ID 對應多個元件,則此操作返回哪個元件是不確定的。如果給定的元件 ID 對應於多個元件,則應調用 get_effective_components

參數:
id - 將返回的元件的元件 id。
返回:
通過給定標識符獲取的 IOP.TaggedComponent
拋出:
BAD_PARAM - 如果不存在對應於給定元件 ID 的元件,則拋出此異常,並帶有標準次程式碼 28。
另請參見:
get_effective_components(int)

get_effective_components

TaggedComponent[] get_effective_components(int id)
返回為此請求選擇的配置檔案中具有給定 ID 的帶標記元件所組成的陣列。

參數:
id - 將返回的元件的元件 id。
返回:
TaggedComponent 物件的陣列,每個物件都包含給定標識符。
拋出:
BAD_PARAM - 如果不存在對應於給定元件 ID 的元件,則拋出此異常,並帶有標準次程式碼 28。
另請參見:
get_effective_component(int)

get_request_policy

Policy get_request_policy(int type)
返回此操作實行的給定策略。

參數:
type - 指定將返回策略的策略型別。
返回:
通過給定型別獲取的 CORBA.Policy
拋出:
INV_POLICY - 如果策略型別因為此 ORB 不支持指定型別或該型別的策略物件不與此 Object 關聯而無效,則拋出此異常,並帶有標準次程式碼 1。
另請參見:
PortableInterceptor 套件中關於限制/未實作特性的註釋

add_request_service_context

void add_request_service_context(ServiceContext service_context,
                                 boolean replace)
允許 Interceptor 將服務上下文添加到請求。

沒有對服務上下文的順序做出任何宣告。它們可能按添加的順序出現,也可能不是如此。

參數:
service_context - 將添加到請求的 IOP.ServiceContext
replace - 在已經存在具有給定 ID 的服務上下文時指示此操作的行為。如果為 false,則拋出 BAD_INV_ORDER,並帶有標準次要程式碼 15。如果為 true,則用新服務上下文取代現有的服務上下文。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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