- 所有已实现的接口:
-
MBeanRegistration,NotificationBroadcaster,NotificationEmitter,JMXAddressable,JMXConnectorServerMBean
- 直接已知的子类:
-
RMIConnectorServer
每个连接器服务器的超类。连接器服务器附加到一个MBean服务器。它监听客户端连接请求,并为每个请求创建一个连接。
连接器服务器通过在该MBean服务器中注册它,或通过将MBean服务器传递给其构造函数,与MBean服务器关联。
连接器服务器在创建时处于非活动状态。只有在调用start方法时,连接器服务器才开始监听客户端连接。当调用stop方法或将连接器服务器从其MBean服务器中注销时,连接器服务器停止监听客户端连接。
停止连接器服务器不会将其从MBean服务器注销。一旦停止,连接器服务器就无法重新启动。
每次建立或断开客户端连接时,都会发出一个JMXConnectionNotification类的通知。
- 自版本:
- 1.5
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescription构造一个将作为MBean注册在其所附加的MBean服务器中的连接器服务器。JMXConnectorServer(MBeanServer mbeanServer) 构造一个连接到给定MBean服务器的连接器服务器。 -
Method Summary
Modifier and TypeMethodDescriptionprotected 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) 返回此连接器服务器的客户端存根。Methods declared in class javax.management.NotificationBroadcasterSupport
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotificationMethods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods declared in interface javax.management.remote.JMXAddressable
getAddressMethods declared in interface javax.management.remote.JMXConnectorServerMBean
getAddress, getAttributes, isActive, start, stop
-
Field Details
-
AUTHENTICATOR
指定连接器服务器的验证器的属性名称。与此属性关联的值(如果有)必须是实现接口
JMXAuthenticator的对象。- 参见:
-
-
Constructor Details
-
JMXConnectorServer
public JMXConnectorServer()构造一个将作为MBean注册在其所附加的MBean服务器中的连接器服务器。通常在MBean服务器内部创建使其远程可用的连接器服务器时,通过其中一个
createMBean方法调用此构造函数。 -
JMXConnectorServer
构造一个连接到给定MBean服务器的连接器服务器。以这种方式创建的连接器服务器可以在不同的MBean服务器中注册,或者不注册在任何MBean服务器中。
- 参数:
-
mbeanServer- 这个连接器服务器所附加的MBean服务器。如果此连接器服务器将通过在其中注册来附加到MBean服务器,则为null。
-
-
Method Details
-
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远程API指定的连接器支持(JMXMP连接器和RMI连接器)。
此方法的默认实现使用
JMXConnectorServerMBean.getAddress()和JMXConnectorFactory来生成存根,代码等效于以下内容:JMXServiceURL addr =
getAddress(); returnJMXConnectorFactory.newJMXConnector(addr, env);如果这对于某个连接器服务器不合适,则必须覆盖此方法,以便实现适当的逻辑或抛出
UnsupportedOperationException。- 指定者:
-
toJMXConnector在接口JMXConnectorServerMBean中 - 参数:
-
env- 可以提供给JMXConnector.connect(Map)的客户端连接参数。可以为null,相当于空映射。 - 返回:
- 一个客户端存根,可用于与此连接器服务器建立新连接。
- 抛出:
-
UnsupportedOperationException- 如果此连接器服务器不支持生成客户端存根。 -
IllegalStateException- 如果JMXConnectorServer未启动(参见JMXConnectorServerMBean.isActive())。 -
IOException- 如果通信问题导致无法创建存根。
-
getNotificationInfo
返回指示此MBean发送的通知的数组。在
JMXConnectorServer中的实现返回一个具有一个元素的数组,指示它可以发出JMXConnectionNotification类的通知,该类中定义了这些类型。可以发出其他通知的子类应返回一个包含此元素及其他通知描述的数组。- 指定由:
-
getNotificationInfo在接口中NotificationBroadcaster - 返回:
- 可能通知的数组。
-
connectionOpened
当子类打开新的客户端连接时调用。将
connectionId添加到由getConnectionIds()返回的列表中,然后发出一个类型为JMXConnectionNotification的通知,类型为JMXConnectionNotification.OPENED。- 参数:
-
connectionId- 新连接的ID。这必须与此连接器服务器先前打开的任何连接的ID不同。 -
message- 发出的JMXConnectionNotification的消息。可以为null。参见Notification.getMessage()。 -
userData- 发出的JMXConnectionNotification的userData。可以为null。参见Notification.getUserData()。 - 抛出:
-
NullPointerException- 如果connectionId为null。
-
connectionClosed
当客户端连接正常关闭时,由子类调用。从由
getConnectionIds()返回的列表中删除connectionId,然后发出一个类型为JMXConnectionNotification的通知,类型为JMXConnectionNotification.CLOSED。- 参数:
-
connectionId- 关闭连接的ID。 -
message- 发出的JMXConnectionNotification的消息。可以为null。参见Notification.getMessage()。 -
userData- 发出的JMXConnectionNotification的userData。可以为null。参见Notification.getUserData()。 - 抛出:
-
NullPointerException- 如果connectionId为null。
-
connectionFailed
当客户端连接失败时,由子类调用。从由
getConnectionIds()返回的列表中删除connectionId,然后发出一个类型为JMXConnectionNotification的通知,类型为JMXConnectionNotification.FAILED。- 参数:
-
connectionId- 失败连接的ID。 -
message- 发出的JMXConnectionNotification的消息。可以为null。参见Notification.getMessage()。 -
userData- 发出的JMXConnectionNotification的userData。可以为null。参见Notification.getUserData()。 - 抛出:
-
NullPointerException- 如果connectionId为null。
-
preRegister
当此连接器服务器在MBean服务器中注册时,由MBean服务器调用。此连接器服务器将附加到MBean服务器,其
getMBeanServer()方法将返回mbs。如果此连接器服务器已经附加到MBean服务器,此方法不起作用。它附加到的MBean服务器不一定是正在注册的MBean服务器。
- 指定由:
-
preRegister在接口中MBeanRegistration - 参数:
-
mbs- 此连接服务器正在注册的MBean服务器。 -
name- MBean的对象名称。 - 返回:
- 要注册MBean的名称。
- 抛出:
-
NullPointerException- 如果mbs或name为null。
-
postRegister
从接口中复制的描述:MBeanRegistration允许MBean在注册到MBean服务器后或注册失败后执行所需的任何操作。如果此方法的实现引发
RuntimeException或Error,MBean服务器将在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服务器将在RuntimeMBeanException或RuntimeErrorException中重新抛出这些异常。但是,在postDeregister中抛出异常不会更改MBean的状态:MBean已经成功注销并将保持如此。对于调用
unregisterMBean()的代码可能会感到困惑,因为它可能会假定MBean注销失败。因此,建议postDeregister的实现尽量避免抛出运行时异常或错误。- 指定由:
-
postDeregister在接口中MBeanRegistration
-