- 所有已实现的接口:
MBeanRegistration,NotificationBroadcaster,NotificationEmitter,JMXAddressable,JMXConnectorServerMBean
- 已知子类:
RMIConnectorServer
每个连接器服务的超类。连接器服务附加到 MBean 服务。它监听客户端连接请求并为每个请求创建一个连接。
连接器服务与 MBean 服务相关联,方法是在 MBean 服务中注册它,或者将 MBean 服务传递给它的构造方法。
连接器服务在创建时处于非活动状态。它仅在调用 start 方法时才开始监听客户端连接。当调用 stop 方法或连接器服务从其 MBean 服务注销时,连接器服务将停止监听客户端连接。
停止连接器服务不会从其 MBean 服务中注销它。连接器服务一旦停止就无法重新启动。
每次建立或断开客户端连接时,都会发出 JMXConnectionNotification 类的通知。
- 自从:
- 1.5
-
字段摘要
字段 -
构造方法总结
构造方法构造方法描述构造一个连接器服务,该服务将在它附加到的 MBean 服务中注册为 MBean。JMXConnectorServer(MBeanServer mbeanServer) 构造附加到给定 MBean 服务的连接器服务。 -
方法总结
修饰符和类型方法描述protected voidconnectionClosed(String connectionId, String message, Object userData) 当客户端连接正常关闭时由子类调用。protected voidconnectionFailed(String connectionId, String message, Object userData) 当客户端连接失败时由子类调用。protected voidconnectionOpened(String connectionId, String message, Object userData) 当打开新的客户端连接时由子类调用。String[]当前打开的与此连接器服务的连接的 ID 列表。返回此连接器服务附加到的 MBean 服务。返回一个数组,指示此 MBean 发送的通知。void允许 MBean 在 MBean 服务中注销后执行所需的任何操作。voidpostRegister(Boolean registrationDone) 允许 MBean 在 MBean 服务中注册后或注册失败后执行所需的任何操作。void当此连接器服务从 MBean 服务注销时由 MBean 服务调用。preRegister(MBeanServer mbs, ObjectName name) 当此连接器服务在 MBean 服务中注册时由 MBean 服务调用。void插入一个对象,该对象拦截通过此连接器服务到达的对 MBean 服务的请求。toJMXConnector(Map<String, ?> env) 返回此连接器服务的客户端存根。在类 javax.management.NotificationBroadcasterSupport 中声明的方法
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification在类 java.lang.Object 中声明的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait在接口 javax.management.remote.JMXAddressable 中声明的方法
getAddress在接口 javax.management.remote.JMXConnectorServerMBean 中声明的方法
getAddress, getAttributes, isActive, start, stop
-
字段详细信息
-
AUTHENTICATOR
指定连接器服务的身份验证器的属性的名称。与此属性关联的值(如果有)必须是实现接口
JMXAuthenticator的对象。- 参见:
-
-
构造方法详细信息
-
JMXConnectorServer
public JMXConnectorServer()构造一个连接器服务,该服务将在它附加到的 MBean 服务中注册为 MBean。当在 MBean 服务中创建连接器服务使其远程可用时,此构造函数通常由
createMBean方法之一调用。 -
JMXConnectorServer
构造附加到给定 MBean 服务的连接器服务。以这种方式创建的连接器服务可以在不同的 MBean 服务中注册,或者不在任何 MBean 服务中注册。
- 参数:
mbeanServer- 此连接器服务附加到的 MBean 服务。如果此连接器服务将通过在其中注册而附加到 MBean 服务,则为空。
-
-
方法详情
-
getMBeanServer
返回此连接器服务附加到的 MBean 服务。
- 返回:
- 此连接器服务附加到的 MBean 服务,如果它尚未附加到 MBean 服务,则返回 null。
-
setMBeanServerForwarder
从接口JMXConnectorServerMBean复制的描述插入一个对象,该对象拦截通过此连接器服务到达的对 MBean 服务的请求。对于由此连接器服务创建的任何新连接,此对象将作为
MBeanServer提供。现有连接不受影响。可以使用不同的
MBeanServerForwarder对象多次调用此方法。结果是一个转发器链。最后添加的转发器是链中的第一个。更详细地:如果此连接器服务已与
MBeanServer对象相关联,则该对象将提供给mbsf.setMBeanServer。如果这样做会产生异常,则此方法会抛出相同的异常而不会产生任何其他影响。如果此连接器尚未与
MBeanServer对象相关联,或者如果刚才提到的mbsf.setMBeanServer调用成功,则mbsf成为此连接器服务的MBeanServer。
- 指定者:
setMBeanServerForwarder在接口JMXConnectorServerMBean中- 参数:
mbsf- 新的MBeanServerForwarder。
-
getConnectionIds
从接口JMXConnectorServerMBean复制的描述当前打开的与此连接器服务的连接的 ID 列表。
- 指定者:
getConnectionIds在接口JMXConnectorServerMBean中- 返回:
- 包含 ID 列表的新字符串数组。如果当前没有打开的连接,则此数组将为空。
-
toJMXConnector
返回此连接器服务的客户端存根。客户端存根是一个可序列化的对象,其
connect方法可用于与此连接器服务建立新连接。给定的连接器不需要支持客户端存根的生成。但是,JMX Remote API 指定的连接器(JMXMP 连接器和 RMI 连接器)可以。
此方法的默认实现使用
JMXConnectorServerMBean.getAddress()和JMXConnectorFactory生成存根,代码等效于以下内容:JMXServiceURL addr =
getAddress(); returnJMXConnectorFactory.newJMXConnector(addr, env);对此不合适的连接器服务必须覆盖此方法,以便它实现适当的逻辑或抛出
UnsupportedOperationException。- 指定者:
toJMXConnector在接口JMXConnectorServerMBean中- 参数:
env- 可以提供给JMXConnector.connect(Map)的同类客户端连接参数。可以为null,相当于一个空map。- 返回:
- 可用于与此连接器服务建立新连接的客户端存根。
- 抛出:
UnsupportedOperationException- 如果此连接器服务不支持生成客户端存根。IllegalStateException- 如果 JMXConnectorServer 未启动(请参阅JMXConnectorServerMBean.isActive())。IOException- 如果通信问题意味着无法创建存根。
-
getNotificationInfo
返回一个数组,指示此 MBean 发送的通知。
JMXConnectorServer中的实现返回一个包含一个元素的数组,表明它可以使用该类中定义的类型发出类JMXConnectionNotification的通知。可以发出其他通知的子类应该返回一个数组,其中包含此元素以及其他通知的描述。- 指定者:
getNotificationInfo在接口NotificationBroadcaster中- 返回:
- 可能通知的数组。
-
connectionOpened
当打开新的客户端连接时由子类调用。将
connectionId添加到getConnectionIds()返回的列表中,然后发出类型为JMXConnectionNotification.OPENED的JMXConnectionNotification。- 参数:
connectionId- 新连接的 ID。这必须不同于此连接器服务先前打开的任何连接的 ID。message- 发出的消息JMXConnectionNotification。可以为空。参见Notification.getMessage()。userData- 发射的JMXConnectionNotification的userData。可以为空。参见Notification.getUserData()。- 抛出:
NullPointerException- 如果connectionId为空。
-
connectionClosed
当客户端连接正常关闭时由子类调用。从
getConnectionIds()返回的列表中删除connectionId,然后发出类型为JMXConnectionNotification.CLOSED的JMXConnectionNotification。- 参数:
connectionId- 已关闭连接的 ID。message- 发出的消息JMXConnectionNotification。可以为空。参见Notification.getMessage()。userData- 发射的JMXConnectionNotification的userData。可以为空。参见Notification.getUserData()。- 抛出:
NullPointerException- 如果connectionId为空。
-
connectionFailed
当客户端连接失败时由子类调用。从
getConnectionIds()返回的列表中删除connectionId,然后发出类型为JMXConnectionNotification.FAILED的JMXConnectionNotification。- 参数:
connectionId- 失败连接的 ID。message- 发出的消息JMXConnectionNotification。可以为空。参见Notification.getMessage()。userData- 发射的JMXConnectionNotification的userData。可以为空。参见Notification.getUserData()。- 抛出:
NullPointerException- 如果connectionId为空。
-
preRegister
当此连接器服务在 MBean 服务中注册时由 MBean 服务调用。此连接器服务连接到 MBean 服务,其
getMBeanServer()方法将返回mbs。如果此连接器服务已附加到 MBean 服务,则此方法无效。它所连接的 MBean 服务不一定是它所注册的服务。
- 指定者:
preRegister在接口MBeanRegistration中- 参数:
mbs- 正在其中注册此连接服务的 MBean 服务。name- MBean 的对象名称。- 返回:
- MBean 将在其下注册的名称。
- 抛出:
NullPointerException- 如果mbs或name为空。
-
postRegister
从接口MBeanRegistration复制的描述允许 MBean 在 MBean 服务中注册后或注册失败后执行所需的任何操作。如果此方法的实现抛出
RuntimeException或Error,则 MBean Server 将分别重新抛出RuntimeMBeanException或RuntimeErrorException中的那些。但是,在postRegister中抛出异常不会更改 MBean 的状态:如果 MBean 已经注册(registrationDone是true),则 MBean 将保持注册状态。这可能会使调用
createMBean()或registerMBean()的代码感到困惑,因为此类代码可能会假定在引发此类异常时 MBean 注册失败。因此,建议postRegister的实现在可以避免的情况下不要抛出运行时异常或错误。- 指定者:
postRegister在接口MBeanRegistration中- 参数:
registrationDone- 指示 MBean 是否已在 MBean 服务中成功注册。值 false 表示注册阶段失败。
-
preDeregister
当此连接器服务从 MBean 服务注销时由 MBean 服务调用。如果此连接器服务通过在其中注册而附加到该 MBean 服务,并且如果连接器服务仍处于活动状态,则注销它将调用
stop方法。如果stop方法抛出异常,注销尝试将失败。建议在取消注册 MBean 之前显式调用stop方法。- 指定者:
preDeregister在接口MBeanRegistration中- 抛出:
IOException- 如果由stop方法抛出。Exception- 此异常将被 MBean 服务捕获并作为MBeanRegistrationException重新抛出。
-
postDeregister
public void postDeregister()从接口MBeanRegistration复制的描述允许 MBean 在 MBean 服务中注销后执行所需的任何操作。如果此方法的实现抛出
RuntimeException或Error,则 MBean Server 将分别重新抛出RuntimeMBeanException或RuntimeErrorException中的那些。但是,在postDeregister中抛出异常不会更改 MBean 的状态:MBean 已成功注销并将保持这种状态。这可能会使调用
unregisterMBean()的代码感到困惑,因为它可能假定 MBean 注销失败。因此,建议postDeregister的实现在可以避免的情况下不要抛出运行时异常或错误。- 指定者:
postDeregister在接口MBeanRegistration中
-