-
- All Superinterfaces:
-
RequestInfoOperations
- All Known Subinterfaces:
-
ServerRequestInfo
public interface ServerRequestInfoOperations extends RequestInfoOperations
请求信息,可由服务器端请求拦截器访问。ServerRequestInfo
某些属性和操作在所有截取点都无效。 下表显示每个属性或操作的有效性。 如果它无效,尝试访问它将导致一个BAD_INV_ORDER
被抛出一个标准的次要代码14。
service_contexts receive_request send_reply send_exception send_other Inherited from RequestInfo:request_id
yes yes yes yes yesoperation
yes yes yes yes yesarguments
no yes1 yes no2 no2exceptions
no yes yes yes yescontexts
no yes yes yes yesoperation_context
no yes yes no noresult
no no yes no noresponse_expected
yes yes yes yes yessync_scope
yes yes yes yes yes request_id yes yes yes yes yes operation yes yes yes yes yes arguments no yes1 yes no2 no2 exceptions no yes yes yes yes contexts no yes yes yes yes operation_context no yes yes no no result no no yes no no response_expected yes yes yes yes yes sync_scope yes yes yes yes yes reply_status no no yes yes yes forward_reference no no no no yes2 get_slot yes yes yes yes yes get_request_service_context yes no yes yes yes get_reply_service_context no no yes yes yes ServerRequestInfo-specific: sending_exception no no no yes no object_id no yes yes yes3 yes3 adapter_id no yes yes yes3 yes3 server_id no yes yes yes yes orb_id no yes yes yes yes adapter_name no yes yes yes yes target_most_derived_interface no yes no4 no4 no4 get_server_policy yes yes yes yes yes set_slot yes yes yes yes yes target_is_a no yes no4 no4 no4 add_reply_service_context yes yes yes yes yes- 当
ServerRequestInfo
传递给receive_request
,每个参数的列表中都有一个条目,无论是in,in还是out。 但是只有in和inout参数才可用。 - 如果
reply_status
属性不是LOCATION_FORWARD
,访问此属性将抛出BAD_INV_ORDER
标准的次要代码14。 - 如果servant定位器导致位置向前或引发异常,此属性/操作可能在此截取点中不可用。 如果不可用,则抛出标准的次要代码为1的
NO_RESOURCES
。 - 该拦截点不可用此操作,因为必要的信息需要访问目标对象的仆人,ORB可能不再可用。 例如,如果对象的适配器是使用
ServantLocator
的POA,则ORB在调用ServantLocator.postinvoke()
之后调用拦截点。
- 另请参见:
-
ServerRequestInterceptor
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 byte[]
adapter_id()
返回对象适配器的不透明标识符。String[]
adapter_name()
返回标识正在处理此请求的对象适配器实例的字符串序列。void
add_reply_service_context(ServiceContext service_context, boolean replace)
允许拦截器向请求添加服务上下文。Policy
get_server_policy(int type)
返回给定策略类型的此操作的有效策略。byte[]
object_id()
返回描述操作调用目标的不透明object_id
。String
orb_id()
返回用于创建ORB的ID。Any
sending_exception()
返回任何包含要返回给客户端的异常。String
server_id()
返回使用-ORBServerId参数在ORB :: init上指定的服务器ID。void
set_slot(int id, Any data)
允许拦截器在请求范围内的PortableInterceptor.Current
中设置一个插槽。boolean
target_is_a(String id)
如果servant是给定的存储库id,则返回true,否则返回false。String
target_most_derived_interface()
返回servant最传导接口的存储库ID。-
Methods inherited from interface org.omg.PortableInterceptor.RequestInfoOperations
arguments, contexts, exceptions, forward_reference, get_reply_service_context, get_request_service_context, get_slot, operation, operation_context, reply_status, request_id, response_expected, result, sync_scope
-
-
-
-
方法详细信息
-
sending_exception
Any sending_exception()
返回任何包含要返回给客户端的异常。如果异常是用户异常,不能插入任何(例如,未知或绑定不提供
TypeCode
),则此属性将包含系统异常UNKNOWN
,标准次要代码为1 。
-
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
- 抛出,标准的次要代码为2,如果给定类型的策略未通过register_policy_factory
注册。 - 另请参见:
-
ORBInitInfoOperations.register_policy_factory(int, org.omg.PortableInterceptor.PolicyFactory)
-
set_slot
void set_slot(int id, Any data) throws InvalidSlot
允许拦截器在请求范围内的PortableInterceptor.Current
中设置一个插槽。 如果该插槽中已经存在数据,它将被覆盖。- 参数
-
id
- 插槽的ID。 -
data
- 以任何形式存储在该插槽中的数据。 - 异常
-
InvalidSlot
- 如果ID未定义分配的插槽,则抛出。 - 另请参见:
-
Current
-
target_is_a
boolean target_is_a(String id)
如果servant是给定的存储库id,则返回true,否则返回false。- 参数
-
id
- 呼叫者想知道仆人是否是这个存储库ID。 - 结果
- 仆人是给定的RepositoryId吗?
-
add_reply_service_context
void add_reply_service_context(ServiceContext service_context, boolean replace)
允许拦截器向请求添加服务上下文。没有声明服务上下文的顺序。 他们可能会或不会按照添加的顺序出现。
- 参数
-
service_context
- 添加到答复的IOP.ServiceContext
。 -
replace
- 表示当具有给定ID的服务上下文已存在时,此操作的行为。 如果是false,那么BAD_INV_ORDER
与标准的小代码15被抛出。 如果为true,则现有服务上下文将被新的服务上下文替换。 - 异常
-
BAD_INV_ORDER
- 抛出,标准的次要代码为15,如果replace为false,并且服务上下文已经存在与给定的ID。
-
-