Module  java.corba

Interface ServerRequestInfoOperations

  • All Superinterfaces:
    RequestInfoOperations
    All Known Subinterfaces:
    ServerRequestInfo


    public interface ServerRequestInfoOperations
    extends RequestInfoOperations
    请求信息,可由服务器端请求拦截器访问。

    ServerRequestInfo某些属性和操作在所有截取点都无效。 下表显示每个属性或操作的有效性。 如果它无效,尝试访问它将导致一个BAD_INV_ORDER被抛出一个标准的次要代码14。

    Shows the validity of each attribute or operation   receive_request_
    service_contexts receive_request send_reply send_exception send_other Inherited from RequestInfo:

    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 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
    1. ServerRequestInfo传递给receive_request ,每个参数的列表中都有一个条目,无论是in,in还是out。 但是只有in和inout参数才可用。
    2. 如果reply_status属性不是LOCATION_FORWARD ,访问此属性将抛出BAD_INV_ORDER标准的次要代码14。
    3. 如果servant定位器导致位置向前或引发异常,此属性/操作可能在此截取点中不可用。 如果不可用,则抛出标准的次要代码为1的NO_RESOURCES
    4. 该拦截点不可用此操作,因为必要的信息需要访问目标对象的仆人,ORB可能不再可用。 例如,如果对象的适配器是使用ServantLocator的POA,则ORB在调用ServantLocator.postinvoke()之后调用拦截点。
    另请参见:
    ServerRequestInterceptor
    • 方法详细信息

      • 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。