所有类


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。

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部