Class RMIConnectorServer

    • 字段详细信息

      • JNDI_REBIND_ATTRIBUTE

        public static final String JNDI_REBIND_ATTRIBUTE

        指定表示RMI连接器服务器的RMIServer存根是否应覆盖同一地址的现有存根的属性名称。 与此属性相关联的值(如果有)应为与"true""false"相同的忽略大小写的字符串。 默认值为false。

        另请参见:
        Constant Field Values
      • RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE

        public static final String RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE

        为与此连接器一起创建的RMI对象指定RMIClientSocketFactory的属性名称。 与此属性关联的值必须为RMIClientSocketFactory类型,并且只能在创建连接器服务器时提供的Map参数中指定。

        另请参见:
        Constant Field Values
      • RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE

        public static final String RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE

        为与此连接器一起创建的RMI对象指定RMIServerSocketFactory的属性的名称。 与此属性关联的值必须是类型RMIServerSocketFactory ,并且只能在创建连接器服务器时提供的Map参数中指定。

        另请参见:
        Constant Field Values
      • CREDENTIAL_TYPES

        public static final String CREDENTIAL_TYPES
        指定可接受作为RMIServer.newClient()远程方法调用的参数的类名列表的属性的名称。

        这个类的列表应该对应于与RMIServer实现相关联的安装的JMXAuthenticator使用的凭证类(或类)的传递性关闭。

        如果属性未设置,或为null,那么任何类都被认为是可接受的。

        另请参见:
        Constant Field Values
    • 构造方法详细信息

      • RMIConnectorServer

        public RMIConnectorServer​(JMXServiceURL url,
                                  Map<String,?> environment)
                           throws IOException

        做一个RMIConnectorServer 这相当于调用RMIConnectorServer(directoryURL,environment,null,null)

        参数
        url - 定义如何创建连接器服务器的URL。 不能为空。
        environment - 管理RMI对象的创建和存储的属性。 可以为空,这相当于一个空的地图。
        异常
        IllegalArgumentException - 如果 url为空。
        MalformedURLException - 如果url不符合RMI连接器的语法,或者如果该实现不能识别其协议。 当使用此构造函数时,只有“rmi”有效。
        IOException - 如果由于某种原因无法创建连接器服务器,或者它的 start方法是不可避免的将失败。
      • RMIConnectorServer

        public RMIConnectorServer​(JMXServiceURL url,
                                  Map<String,?> environment,
                                  MBeanServer mbeanServer)
                           throws IOException

        为给定的MBean服务器做一个RMIConnectorServer 这相当于调用RMIConnectorServer(directoryURL,environment,null,mbeanServer)

        参数
        url - 定义如何创建连接器服务器的URL。 不能为空。
        environment - 管理RMI对象的创建和存储的属性。 可以为空,这相当于一个空的地图。
        mbeanServer - 连接新连接器服务器的MBean服务器,如果通过在MBean服务器中注册为MBean,将附加为null。
        异常
        IllegalArgumentException - 如果 url为空。
        MalformedURLException - 如果url不符合RMI连接器的语法,或者如果该实现不能识别其协议。 当使用此构造函数时,只有“rmi”有效。
        IOException - 如果由于某种原因无法创建连接器服务器,或者如果其 start方法不可避免,则不可避免。
      • RMIConnectorServer

        public RMIConnectorServer​(JMXServiceURL url,
                                  Map<String,?> environment,
                                  RMIServerImpl rmiServerImpl,
                                  MBeanServer mbeanServer)
                           throws IOException

        为给定的MBean服务器创建一个RMIConnectorServer

        参数
        url - 定义如何创建连接器服务器的URL。 不能为空。
        environment - 管理RMI对象的创建和存储的属性。 可以为空,这相当于一个空的地图。
        rmiServerImpl - RMIServer接口的实现,与url中指定的协议类型一致。 如果此参数为非空,则由url指定的协议类型不受约束,并被假定为有效。 否则,只能识别“rmi”。
        mbeanServer - 连接新连接器服务器的MBean服务器,如果通过在MBean服务器中注册为MBean,将附加为null。
        异常
        IllegalArgumentException - 如果 url为空。
        MalformedURLException - 如果url不符合RMI连接器的语法,或者其实现不能识别其协议。 rmiServerImpl为空时, 只能识别“rmi”。
        IOException - 如果由于某种原因无法创建连接器服务器,或者它的 start方法将不可避免。
        另请参见:
        start()
    • 方法详细信息

      • start

        public void start​()
                   throws IOException

        激活连接器服务器,即开始侦听客户端连接。 当连接器服务器已经处于活动状态时调用此方法没有任何效果。 当连接器服务器停止时调用此方法将生成一个IOException

        第一次调用该方法的行为取决于在建造过程中提供的参数,如下所述。

        首先,需要RMIServerImpl子类的对象,通过RMI导出连接器服务器:

        • 如果向构造函数提供了一个RMIServerImpl ,则使用它。
        • 否则,如果JMXServiceURL为空,或它的协议的部分是rmi ,类型的对象RMIJRMPServerImpl被创建。
        • 否则,实现可以创建一个实现特定的RMIServerImpl或者它可以抛出MalformedURLException

        如果给定的地址包含javax.management.remote.rmi的包文档中指定的JNDI目录URL,那么这个RMIConnectorServer将通过将RMIServerImpl绑定到给定地址来引导。

        如果JMXServiceURL的URL路径部分为空或单个斜杠( / ),则RMI对象将不会绑定到目录。 相反,对它的引用将被编码在RMIConnectorServer地址的URL路径(由getAddress()返回)。 rmi的编码在rmi的软件包文档中有所描述。

        当URL路径既不为空,也不是JNDI目录URL,或者当协议不是rmi ,行为是实现定义的,并且可能包括在创建连接器服务器或启动时抛出MalformedURLException

        异常
        IllegalStateException - 如果连接器服务器尚未连接到MBean服务器。
        IOException - 如果连接器服务器无法启动。
      • stop

        public void stop​()
                  throws IOException

        停用连接器服务器,即停止侦听客户端连接。 调用此方法还将关闭此服务器所做的所有客户端连接。 此方法返回后,无论是正常还是异常,连接器服务器将不会创建任何新的客户端连接。

        一旦连接器服务器停止,它将无法再次启动。

        当连接器服务器已经停止时调用此方法没有任何作用。 当连接器服务器尚未启动时调用此方法将永久禁用连接器服务器对象。

        如果关闭客户端连接会产生异常,则不会从此方法抛出该异常。 从此MBean发出的连接ID无法关闭的JMXConnectionNotification

        关闭连接器服务器是一个潜在的慢操作。 例如,如果具有打开连接的客户端计算机崩溃,则关闭操作可能必须等待网络协议超时。 不想封闭操作的调用者应该在单独的线程中执行。

        此方法调用连接器服务器的RMIServerImpl对象上的方法close

        如果通过start方法将RMIServerImpl绑定到JNDI目录,则该方法将从目录中绑定。

        异常
        IOException - 如果服务器无法正常关闭,或者RMIServerImpl无法从目录中解除绑定。 抛出此异常时,如果适用,服务器已尝试关闭所有客户端连接; 致电RMIServerImpl.close() ; 并从其目录中解除绑定RMIServerImpl (如果适用)。 除了服务器尝试关闭客户端连接之外,所有客户端连接都可能关闭。
      • isActive

        public boolean isActive​()
        说明从界面JMXConnectorServerMBean复制

        确定连接器服务器是否处于活动状态。 连接器服务器在其start方法成功返回时开始活动,并保持活动状态,直到其stop方法被调用或连接器服务器发生故障。

        结果
        新新新旗新新新新旗新新旗新新旗新新旗新新旗旗新新新旗新新旗新新旗新新200新新旗新新200新新200
      • getAttributes

        public Map<String,?> getAttributes​()
        描述从界面JMXConnectorServerMBean复制

        此连接器服务器的属性。

        结果
        包含此连接器服务器的属性的只读映射。 其值不可序列化的属性从该地图中省略。 如果没有可序列化的属性,返回的地图是空的。
      • setMBeanServerForwarder

        public void setMBeanServerForwarder​(MBeanServerForwarder mbsf)
        说明从界面JMXConnectorServerMBean复制

        插入一个对象,拦截通过此连接器服务器到达的MBean服务器的请求。 此对象将作为MBeanServer提供,用于由此连接器服务器创建的任何新连接。 现有连接不受影响。

        该方法可以使用不同的MBeanServerForwarder对象多次调用。 结果是一连串的代理商。 最后一名货车是连锁店的第一名。 更详细地说:

        • 如果此连接器服务器已与MBeanServer对象关联,那么该对象将被赋予mbsf.setMBeanServer 如果这样做会产生异常,则此方法会引发相同的异常,而不会产生任何其他影响。

        • 如果此连接器尚未与MBeanServer对象关联,或者如果刚才提到的mbsf.setMBeanServer呼叫成功,则mbsf将成为此连接器服务器的MBeanServer

        Specified by:
        setMBeanServerForwarder在接口 JMXConnectorServerMBean
        重写:
        setMBeanServerForwarderJMXConnectorServer
        参数
        mbsf - 全新 MBeanServerForwarder