public interface ClientRequestInterceptorOperations extends InterceptorOperations
请求拦截器旨在拦截一个请求/应答的序列流通过ORB在特定的点,使服务可以查询请求信息和操作进行客户端和服务器之间的服务范围。请求拦截器的主要用途是使ORB服务传输客户端和服务器之间的上下文信息。有两种类型:客户端和服务器端请求拦截器。
写一个客户端拦截,实现ClientRequestInterceptor
接口。
ClientRequestInfo
Modifier and Type | Method and Description |
---|---|
void |
receive_exception(ClientRequestInfo ri)
指示一个异常发生的“”“”“”。
|
void |
receive_other(ClientRequestInfo ri)
允许一个拦截者在一个请求结果以外的其他正常的答复或异常时查询可用的信息。
|
void |
receive_reply(ClientRequestInfo ri)
允许在从服务器返回并在控件返回到客户端之前对答复的答复的信息进行查询的信息。
|
void |
send_poll(ClientRequestInfo ri)
允许一个拦截信息的查询时间独立调用期间(TII)投票得到回复顺序。
|
void |
send_request(ClientRequestInfo ri)
允许一个拦截者在请求发送到服务器之前查询请求信息和修改服务上下文。
|
destroy, name
void send_request(ClientRequestInfo ri) throws ForwardRequest
这个拦截点可能会抛出一个系统异常。如果是这样,没有其他的拦截器send_request
操作被称为。在流堆栈弹出的拦截和receive_exception
拦截点称为。这种拦截点可能也扔了一ForwardRequest
例外。如果拦截引发此异常,没有其他send_request
拦截器调用操作。在流堆栈弹出的拦截和receive_other
拦截点称为。
柔性拦截应适当如果他们把系统异常从拦截点跟随completion_status语义。的completion_status
应COMPLETED_NO
。
ri
关于当前请求的信息被截获。
ForwardRequest
如果抛出,表明的圆球,重试请求应该在给新对象发生异常。
void send_poll(ClientRequestInfo ri)
TII,应用程序可以轮询来轮询客户端的请求或其他客户端发送一个响应之前。这一调查报告通过send_poll
拦截器拦截点和响应是通过receive_reply
或receive_exception
拦截点返回。如果民调超时到期之前的反应是不可用的,系统异常TIMEOUT
投入和receive_exception
调用这个例外。
这个拦截点可能会抛出一个系统异常。如果是这样,没有其他的拦截器send_poll
操作被称为。在流堆栈弹出的拦截和receive_exception
拦截点称为。
兼容的截击机应适当遵循completion_status
语义,如果他们把系统异常从拦截点。的completion_status应COMPLETED_NO
。
ri
关于当前请求的信息被截获。
TIMEOUT
-如果民调超时到期之前反应不可抛
void receive_reply(ClientRequestInfo ri)
这个拦截点可能会抛出一个系统异常。如果是这样,没有其他的拦截器receive_reply
操作被称为。在流栈的剩余应receive_exception
拦截器拦截点称为。
兼容的截击机应适当遵循completion_status
语义,如果他们把系统异常从拦截点。的completion_status
应COMPLETED_YES
。
ri
关于当前请求的信息被截获。
void receive_exception(ClientRequestInfo ri) throws ForwardRequest
这个拦截点可能会抛出一个系统异常。有这样的效果:改变异常连续拦截弹出堆栈的流量收到他们的电话receive_exception
。向客户端抛出的异常将是由一个拦截机抛出的最后一个异常,或者如果没有任何一个拦截者改变异常的原始异常。
这种拦截点可能也扔了一ForwardRequest
例外。如果拦截引发此异常,没有其他receive_exception
拦截器调用操作。在流量剩余的拦截弹出堆栈,他们receive_other
拦截点称为。
如果该异常的completion_status
不COMPLETED_NO
,那么这个拦截点扔ForwardRequest
例外是不合适的。一次一次的请求的语义将丢失。
柔性拦截应适当如果他们把系统异常从拦截点跟随completion_status
语义。如果原来的异常是一个系统的异常,异常的新completion_status
应如原来一样。如果原来的异常是一个用户异常,那么新的例外completion_status
应COMPLETED_YES
。
在一定的条件下,根据影响的政策是什么,一个例外(如COMM_FAILURE
)可能导致再审的请求。而这重试相对于拦截新的要求,有原来的要求和重试的关系一点:因为控制没有返回到客户端,这PortableInterceptor.Current
为原来的请求和再审请求是相同的。
ri
关于当前请求的信息被截获。
ForwardRequest
如果抛出,表明的圆球,重试请求应该在给新对象发生异常。
void receive_other(ClientRequestInfo ri) throws ForwardRequest
LOCATION_FORWARD
地位GIOP回复);或在异步调用,回复不立即按照要求,但控制将返回到客户端和一个结束拦截点应称为。
重试,根据起作用的政策,一个新的请求可能会或可能不会遵循当重试了。如果一个新的请求,而这个请求是新的请求,就拦截,有原来的要求和重试的关系一点:因为控制没有返回到客户端的请求范围,PortableInterceptor.Current
为原来的请求和再审请求是相同的。
这个拦截点可能会抛出一个系统异常。如果是这样,没有其他的拦截器receive_other
操作被称为。在流量剩余的拦截弹出堆栈,他们receive_exception
拦截点称为。
这种拦截点可能也扔了一ForwardRequest
例外。如果拦截引发此异常,连续receive_other
拦截器调用操作的ForwardRequest
异常提供了新的信息。
兼容的截击机应适当遵循completion_status
语义,如果他们把系统异常从拦截点。的completion_status
应COMPLETED_NO
。如果目标调用已完成,则不会调用此拦截点。
ri
关于当前请求的信息被截获。
ForwardRequest
如果抛出,表明的圆球,重试请求应该在给新对象发生异常。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.