JavaTM 2 Platform
Standard Ed. 6

org.omg.PortableInterceptor
介面 ServerRequestInfoOperations

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

public interface ServerRequestInfoOperations
extends RequestInfoOperations

伺服器端請求 interceptor 可存取的請求資訊。

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

  receive_request_
service_contexts
receive_request send_reply send_exception send_other
繼承自 RequestInfo:

request_id

operation

arguments

1 2 2

exceptions

contexts

operation_context

result

response_expected

sync_scope

request_id
operation
arguments 1 2 2
exceptions
contexts
operation_context
result
response_expected
sync_scope
reply_status
forward_reference 2
get_slot
get_request_service_context
get_reply_service_context
特定於 ServerRequestInfo:
sending_exception
object_id 3 3
adapter_id 3 3
server_id
orb_id
adapter_name
target_most_derived_interface 4 4 4
get_server_policy
set_slot
target_is_a 4 4 4
add_reply_service_context
  1. ServerRequestInfo 傳遞給 receive_request 時,對於每個參數(無論它是 in、inout 還是 out),列表中都有一個對應的條目。但只有 in 和 inout 參數可用。
  2. 如果 reply_status 屬性不是 LOCATION_FORWARD,則存取此屬性將拋出 BAD_INV_ORDER,並帶有標準次要程式碼 14。
  3. 如果 servant 定位器導致位置轉發或拋出異常,則此屬性/操作在此截取點不可用。如果不可用,則拋出 NO_RESOURCES,並帶有標準次要程式碼 1。
  4. 該操作在此截取點不可用,因為必要資訊要求存取目標物件的 servant,而該 servant 對於 ORB 已經不可用。例如,如果物件適配器為使用 ServantLocator 的 POA,則 ORB 將在調用 ServantLocator.postinvoke() 後調用該截取點。

另請參見:
ServerRequestInterceptor

方法摘要
 byte[] adapter_id()
          返回物件適配器的不透明標識符。
 String[] adapter_name()
          返回字元串序列,這些字元串標識正處理此請求的物件適配器實例。
 void add_reply_service_context(ServiceContext service_context, boolean replace)
          允許 Interceptor 將服務上下文添加到請求。
 Policy get_server_policy(int type)
          返回此操作實行的具有給定策略型別的策略。
 byte[] object_id()
          返回描述該操作調用目標的不透明 object_id
 String orb_id()
          返回用於創建 ORB 的 ID。
 Any sending_exception()
          返回一個 any,它包含將向客戶端返回的異常。
 String server_id()
          返回使用 -ORBServerId 參數的 ORB::init 上指定的伺服器 ID。
 void set_slot(int id, Any data)
          允許 Interceptor 在請求域中的 PortableInterceptor.Current 內設置槽 (slot)。
 boolean target_is_a(String id)
          如果 servant 是給定的存儲資源庫 id,則返回 true;若不是則返回 false。
 String target_most_derived_interface()
          返回 servant 最終派生介面的存儲資源庫 id。
 
從介面 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
 

方法詳細資訊

sending_exception

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

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

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

object_id

byte[] object_id()
返回描述該操作調用目標的不透明 object_id


adapter_id

byte[] adapter_id()
返回物件適配器的不透明標識符。


server_id

String server_id()
返回使用 -ORBServerId 參數的 ORB::init 上指定的伺服器 ID。


orb_id

String orb_id()
返回用於創建 ORB 的 ID。


adapter_name

String[] adapter_name()
返回字元串序列,這些字元串標識正處理此請求的物件適配器實例。


target_most_derived_interface

String target_most_derived_interface()
返回 servant 最終派生介面的存儲資源庫 id。


get_server_policy

Policy get_server_policy(int type)
返回此操作實行的具有給定策略型別的策略。返回的 CORBA.Policy 物件只應該是通過 register_policy_factory 註冊了其型別的策略。

參數:
type - 指定將返回的策略的 CORBA.PolicyType
返回:
通過給定策略型別獲取的 CORBA.Policy
拋出:
INV_POLICY - 如果沒有通過 register_policy_factory 註冊給定型別的策略,則拋出此異常,並帶有標準次要程式碼 2。
另請參見:
ORBInitInfoOperations.register_policy_factory(int, org.omg.PortableInterceptor.PolicyFactory)

set_slot

void set_slot(int id,
              Any data)
              throws InvalidSlot
允許 Interceptor 在請求域中的 PortableInterceptor.Current 內設置槽 (slot)。如果該槽中已存在資料,則將其覆寫。

參數:
id - 槽的 id。
data - 存儲在槽中的資料,以 any 的形式存在。
拋出:
InvalidSlot - 如果 ID 定義的不是已分派的槽,則拋出此異常。
另請參見:
Current

target_is_a

boolean target_is_a(String id)
如果 servant 是給定的存儲資源庫 id,則返回 true;若不是則返回 false。

參數:
id - 調用者將檢驗 servant 是否是此存儲資源庫 id。
返回:
servant 是否是給定的 RepositoryId。

add_reply_service_context

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

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

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

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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