Module  java.corba

Class ServantLocatorPOA

  • All Implemented Interfaces:
    InvokeHandlerServantLocatorOperationsServantManagerOperations


    public abstract class ServantLocatorPOA
    extends Servant
    implements ServantLocatorOperations, InvokeHandler
    当POA具有NON_RETAIN策略时,它使用ServantLocator的servant管理器。 因为POA知道这位仆人经理返回的仆人只能用于一个请求,它可以为仆人经理的业务提供额外的信息,仆人经理的一对操作可能会合作做一些不同于ServantActivator的事情。 当POA使用ServantLocator接口,在对preinvoke返回的servant进行操作调用后,POA将在servant管理器上调用postinvoke,传递ObjectId值和Servant值作为参数(等等)。 此功能可用于强制与POA关联的对象的所有请求都由仆人管理器进行调解。
    • 构造方法详细信息

      • ServantLocatorPOA

        public ServantLocatorPOA​()
    • 方法详细信息

      • _invoke

        public OutputStream _invoke​(String $method,
                                    InputStream in,
                                    ResponseHandler $rh)
        说明从接口InvokeHandler复制
        由ORB调用,向仆人发出请求。 ORB传递方法名称,包含编组参数的InputStream,以及仆人用于构造正确答复的ResponseHandler。 此方法只能抛出CORBA SystemException。 该方法必须返回由包含编组答复的ResponseHandler创建的OutputStream。 仆人在方法调用的生命周期之前不能保留对ResponseHandler的引用。 仆人行为定义如下:

        1.确定正确的方法,并从InputStream中解组参数。

        2.调用方法实现。

        3.如果没有用户异常,请使用ResponseHandler创建正常回复。

        4.如果发生用户异常,请使用ResponseHandler创建异常回复。

        5.Massars回复ResponseHandler返回的OutputStream。

        6.将OutputStream返回给ORB。

        Specified by:
        _invoke在接口 InvokeHandler
        参数
        $method - 方法名称。
        in - 包含编组参数的 InputStream
        $rh - 仆人用来构建正确答复的 ResponseHandler
        结果
        由ResponseHandler创建的包含编组答复的 OutputStream
      • _all_interfaces

        public String[] _all_interfaces​(POA poa,
                                        byte[] objectId)
        描述从类复制: Servant
        由ORB用于从仆人获取完整的类型信息。
        Specified by:
        _all_interfacesServant
        参数
        poa - 与仆人关联的POA。
        objectId - 是与该仆人关联的对象对应的id。
        结果
        对象的类型信息列表。