- 所有已实现的接口:
-
MBeanRegistration
,NotificationBroadcaster
,NotificationEmitter
,JMXAddressable
,JMXConnectorServerMBean
- 直接已知的子类:
-
RMIConnectorServer
每个连接器服务器的超类。连接器服务器附加到一个MBean服务器。它监听客户端连接请求,并为每个请求创建一个连接。
连接器服务器通过在该MBean服务器中注册它,或通过将MBean服务器传递给其构造函数,与MBean服务器关联。
连接器服务器在创建时处于非活动状态。只有在调用start
方法时,连接器服务器才开始监听客户端连接。当调用stop
方法或将连接器服务器从其MBean服务器中注销时,连接器服务器停止监听客户端连接。
停止连接器服务器不会将其从MBean服务器注销。一旦停止,连接器服务器就无法重新启动。
每次建立或断开客户端连接时,都会发出一个JMXConnectionNotification
类的通知。
- 自版本:
- 1.5
-
Field Summary
-
Constructor Summary
ConstructorDescription构造一个将作为MBean注册在其所附加的MBean服务器中的连接器服务器。JMXConnectorServer
(MBeanServer mbeanServer) 构造一个连接到给定MBean服务器的连接器服务器。 -
Method Summary
Modifier and TypeMethodDescriptionprotected void
connectionClosed
(String connectionId, String message, Object userData) 当客户端连接正常关闭时,由子类调用。protected void
connectionFailed
(String connectionId, String message, Object userData) 当客户端连接失败时,由子类调用。protected void
connectionOpened
(String connectionId, String message, Object userData) 当新的客户端连接打开时,由子类调用。String[]
当前连接到此连接器服务器的连接的ID列表。返回此连接器服务器所附加的MBean服务器。返回指示此MBean发送的通知的数组。void
允许MBean在MBean服务器中被注销后执行任何所需的操作。void
postRegister
(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, sendNotification
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods declared in interface javax.management.remote.JMXAddressable
getAddress
Methods 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
-