public interface RequestInfoOperations
Interceptor 可访问的请求信息。
每个截取点都给定了一个对象,Interceptor 可以通过该对象访问请求信息。客户端和服务器端的截取点关注不同的信息,因此有两种信息对象:ClientRequestInfo
传递给客户端的截取点,ServerRequestInfo
传递给服务器端的截取点。但也有两者都需要的信息,所以这两个接口继承自同一个接口:RequestInfo
。
方法摘要 | |
---|---|
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() 定义在控制信息返回到客户端前请求应前进的距离。 |
方法详细信息 |
---|
int request_id()
request_id
。如果使用的传送机制是 GIOP,则这些 ID 很可能是相同的,但是不保证也不要求如此。
String operation()
Parameter[] arguments()
Parameter
对象数组,包含将调用的操作上的参数。如果没有参数,则此属性将是一个 0 长度数组。
并非所有环境都提供对参数的访问。例如,使用 Java 可移植绑定时参数将不可用。在这些环境中访问此属性时,将抛出 NO_RESOURCES
,并带有标准次要代码 1。
注:对于 DSI/DII 调用参数是可用的。
NO_RESOURCES
- 如果参数不可用。
PortableInterceptor
包中关于限制/未实现特性的注释
TypeCode[] exceptions()
TypeCode
对象数组,这些对象描述此操作调用可能抛出的用户异常的
TypeCode
。如果没有用户异常,则此方法返回一个长度为 0 的数组。
并非所有环境都提供对异常列表的访问。例如,使用 Java 可移植绑定时异常列表将不可用。在这些环境中访问此属性时,将抛出 NO_RESOURCES
,并带有标准次要代码 1。
注:异常对于 DSI/DII 调用是可用的。
NO_RESOURCES
- 如果异常不可用。
PortableInterceptor
包中关于限制/未实现特性的注释
String[] contexts()
String
对象数组,这些对象描述可以在此操作调用上传递的上下文。如果没有上下文,则此方法返回一个长度为 0 的数组。
并非所有环境都提供对上下文列表的访问。例如,使用 Java 可移植绑定时上下文列表将不可用。在这些环境中访问此属性时,将抛出 NO_RESOURCES
,并带有标准次要代码 1。
注:上下文对于 DSI/DII 调用是可用的。
NO_RESOURCES
- 如果上下文不可用。
PortableInterceptor
包中关于限制/未实现特性的注释
String[] operation_context()
String
对象数组,这些对象包含将在请求上发送上下文。
并非所有环境都提供对上下文的访问。例如,使用 Java 可移植绑定时上下文将不可用。在这些环境中访问此属性时,将抛出 NO_RESOURCES,并带有标准次代码 1。
注:operation_context
对于 DSI/DII 调用是可用的。
NO_RESOURCES
- 如果操作上下文不可用。
PortableInterceptor
包中关于限制/未实现特性的注释
Any result()
TCKind
值为
tk_void
的类型代码的 any,并且该 any 不包含任何值。
并非所有环境都提供对结果的访问。例如,使用 Java 可移植绑定时结果将不可用。在这些环境中访问此属性时,将抛出 NO_RESOURCES
,并带有标准次要代码 1。
注:结果对于 DSI/DII 调用是可用的。
NO_RESOURCES
- 如果结果不可用。
PortableInterceptor
包中关于限制/未实现特性的注释
boolean response_expected()
对于客户端,当 response_expected
为 false 时不返回应答,因此不能调用 receive_reply
。不发生异常时调用 receive_other
,发生异常时调用 receive_exception
。
此属性在客户端 send_poll
内部为 true。
short sync_scope()
response_expected
为 false 时才相关。如果
response_expected
为 true,则
sync_scope
的值是不确定的。此属性可以是以下值之一:
Messaging.SYNC_NONE
Messaging.SYNC_WITH_TRANSPORT
Messaging.SYNC_WITH_SERVER
Messaging.SYNC_WITH_TARGET
receive_request_service_contexts
、
receive_request
、
send_reply
或
send_exception
)。
对于 SYNC_WITH_SERVER
和 SYNC_WITH_TARGET
,在调用目标前,服务器将一个空应答发送回客户端。此应答将不会被服务器端的 Interceptor 截取。
short reply_status()
PortableInterceptor.SUCCESSFUL
PortableInterceptor.SYSTEM_EXCEPTION
PortableInterceptor.USER_EXCEPTION
PortableInterceptor.LOCATION_FORWARD
PortableInterceptor.TRANSPORT_RETRY
receive_reply
截取点内,此方法仅返回 SUCCESSFUL
receive_exception
截取点内,此方法将返回 SYSTEM_EXCEPTION
或 USER_EXCEPTION
。receive_other
截取点内,此方法将返回以下任意值:SUCCESSFUL
、LOCATION_FORWARD
或 TRANSPORT_RETRY
。SUCCESSFUL
表示成功返回了异步请求。LOCATION_FORWARD
表示返回了应答,并以 LOCATION_FORWARD
作为其状态。TRANSPORT_RETRY
表示传送机制指示重试 - 例如,带有 NEEDS_ADDRESSING_MODE
状态的 GIOP 应答。 send_reply
截取点内,此方法仅返回 SUCCESSFUL
send_exception
截取点内,此方法将返回 SYSTEM_EXCEPTION
或 USER_EXCEPTION
。send_other
截取点内,此属性将是以下任意值:SUCCESSFUL
或 LOCATION_FORWARD
。SUCCESSFUL
表示成功返回了异步请求。LOCATION_FORWARD
表示返回了应答,并以 LOCATION_FORWARD
作为其状态。
Object forward_reference()
reply_status
属性为
LOCATION_FORWARD
,则包含要将请求转发到的对象。转发的请求是否将实际发生是不确定的。
Any get_slot(int id) throws InvalidSlot
PortableInterceptor.Current
给定槽 (slot) 中的数据。
如果尚未设置给定槽,则返回一个包含 TCKind
值为 tk_null
的类型代码的 any。
id
- 将返回的槽的
SlotId
。
InvalidSlot
- 如果 ID 定义的不是已分配的槽,则抛出此异常。
Current
ServiceContext get_request_service_context(int id)
id
- 将返回的服务上下文的
IOP.ServiceId
。
IOP.ServiceContext
。
BAD_PARAM
- 如果请求的服务上下文不包含对应于该 ID 的条目,则抛出此异常,并带有标准次代码 26。
ServiceContext get_reply_service_context(int id)
id
- 将返回的服务上下文的
IOP.ServiceId
。
IOP.ServiceContext
。
BAD_PARAM
- 如果请求的服务上下文不包含对应于该 ID 的条目,则抛出此异常,并带有标准次要代码 26。