- 所有父级接口:
AutoCloseable,Closeable
- 所有已知的实现类:
RMIConnector
JMX API 连接器的客户端。这种类型的对象可用于建立与连接器服务的连接。
这种类型的新创建的对象是未连接的。它的connect 方法必须在使用前调用。但是,JMXConnectorFactory.connect 创建的对象已经连接。
- 自从:
- 1.5
-
字段摘要
字段 -
方法总结
修饰符和类型方法描述voidaddConnectionNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) 添加一个监听以通知连接状态的更改。voidclose()关闭客户端与其服务的连接。voidconnect()建立与连接器服务的连接。void建立与连接器服务的连接。从连接器服务获取此连接的 ID。返回代表远程 MBean 服务的MBeanServerConnection对象。getMBeanServerConnection(Subject delegationSubject) 返回代表远程 MBean 服务的MBeanServerConnection对象,代表提供的委托主题在该服务上执行操作。void从列表中删除监听以通知状态更改。void从列表中删除监听以通知状态更改。
-
字段详细信息
-
CREDENTIALS
指定在连接期间发送到连接器服务的凭据的属性的名称。与此属性关联的值(如果有)是服务的
JMXAuthenticator适当类型的可序列化对象。- 参见:
-
-
方法详情
-
connect
建立与连接器服务的连接。此方法等效于
connect(null)。- 抛出:
IOException- 如果由于通信问题无法建立连接。SecurityException- 如果出于安全原因无法建立连接。
-
connect
建立与连接器服务的连接。
如果
connect已在此对象上成功调用,则再次调用它没有任何效果。但是,如果在connect之后调用了close(),则新的connect将抛出一个IOException。否则,要么
connect从未在此对象上调用过,要么已被调用但产生了异常。然后调用connect将尝试与连接器服务建立连接。- 参数:
env- 连接的属性。此map中的属性会覆盖创建JMXConnector时指定的map中的属性(如果有)。该参数可以为null,相当于一个空的map。- 抛出:
IOException- 如果由于通信问题无法建立连接。SecurityException- 如果出于安全原因无法建立连接。
-
getMBeanServerConnection
返回代表远程 MBean 服务的
MBeanServerConnection对象。对于给定的JMXConnector,两次成功调用此方法通常会返回相同的MBeanServerConnection对象,但这不是必需的。对于返回的
MBeanServerConnection中的每个方法,调用该方法会导致在远程 MBean 服务中调用相应的方法。 MBean 服务方法返回的值是返回给客户端的值。如果 MBean 服务方法生成Exception,则客户端会看到相同的Exception。如果 MBean 服务方法或调用它的尝试生成Error,则Error被包装在JMXServerErrorException中,客户端可以看到。调用此方法等同于调用
getMBeanServerConnection(null),这意味着没有指定委托主题,并且在MBeanServerConnection上调用的所有操作都必须使用经过身份验证的主题(如果有)。- 返回:
-
通过将其方法转发到远程 MBean 服务来实现
MBeanServerConnection接口的对象。 - 抛出:
IOException- 如果无法创建有效的MBeanServerConnection,例如因为尚未建立与远程 MBean 服务的连接(使用connect方法),或者它已关闭,或者它已断开。
-
getMBeanServerConnection
返回代表远程 MBean 服务的
MBeanServerConnection对象,代表提供的委托主题在该服务上执行操作。对于给定的JMXConnector和Subject,两次成功调用此方法通常会返回相同的MBeanServerConnection对象,但这不是必需的。对于返回的
MBeanServerConnection中的每个方法,调用该方法会导致在远程 MBean 服务中代表给定的委托主题而不是经过身份验证的主题调用相应的方法。 MBean 服务方法返回的值是返回给客户端的值。如果 MBean 服务方法生成Exception,则客户端会看到相同的Exception。如果 MBean 服务方法或调用它的尝试生成Error,则Error被包装在JMXServerErrorException中,客户端可以看到。- 参数:
delegationSubject- 将代表执行请求的Subject。可以为空,在这种情况下,将代表经过身份验证的主题执行请求(如果有)。- 返回:
-
一个对象,它通过代表给定的委托主题将其方法转发到远程 MBean 服务来实现
MBeanServerConnection接口。 - 抛出:
IOException- 如果无法创建有效的MBeanServerConnection,例如因为尚未建立与远程 MBean 服务的连接(使用connect方法),或者它已关闭,或者它已断开。
-
close
关闭客户端与其服务的连接。使用
getMBeanServerConnection()返回的 MBeanServerConnection 的任何正在进行的或新的请求都将获得IOException。如果
close已在此对象上成功调用,则再次调用它没有任何效果。如果close从未被调用过,或者如果它被调用但产生异常,将尝试关闭连接。此尝试可以成功,在这种情况下close将正常返回,或者它可以生成异常。关闭连接是一个可能很慢的操作。例如,如果服务崩溃,关闭操作可能必须等待网络协议超时。不想阻塞关闭操作的调用者应该在单独的线程中执行。
- 指定者:
close在接口AutoCloseable中- 指定者:
close在接口Closeable中- 抛出:
IOException- 如果无法干净地关闭连接。如果抛出此异常,则不知道连接的服务端是否已干净关闭。
-
addConnectionNotificationListener
void addConnectionNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) 添加一个监听器以通知连接状态的更改。监听器将收到类型为
JMXConnectionNotification的通知。实现也可以发送其他类型的通知。可以使用此方法添加任意数量的监听器。可以多次添加相同的监听器,使用相同或不同的过滤器和交接值。没有对重复条目的特殊处理。例如,如果一个监听器在没有过滤器的情况下注册了两次,那么它的
handleNotification方法将为每个通知调用两次。- 参数:
listener- 接收连接状态通知的监听器。filter- 一个过滤器,用于选择要将哪些通知传递给监听器,如果要传递所有通知,则为 null。handback- 随每个通知一起提供给监听器的对象。可以为空。- 抛出:
NullPointerException- 如果listener为空。- 参见:
-
removeConnectionNotificationListener
void removeConnectionNotificationListener(NotificationListener listener) throws ListenerNotFoundException 从列表中删除监听以通知状态更改。之前必须添加监听。如果有多个匹配的监听,则全部删除。
- 参数:
listener- 接收连接状态通知的监听器。- 抛出:
NullPointerException- 如果listener为空。ListenerNotFoundException- 如果监听器未注册到此JMXConnector。- 参见:
-
removeConnectionNotificationListener
void removeConnectionNotificationListener(NotificationListener l, NotificationFilter f, Object handback) throws ListenerNotFoundException 从列表中删除监听以通知状态更改。之前必须使用相同的三个参数添加监听。如果有多个匹配的监听,则只删除一个。
- 参数:
l- 接收连接状态通知的监听器。f- 一个过滤器,用于选择要将哪些通知传递给监听器。可以为空。handback- 随每个通知一起提供给监听器的对象。可以为空。- 抛出:
ListenerNotFoundException- 如果监听器没有注册到这个JMXConnector,或者没有注册到给定的过滤器和 handback。- 参见:
-
getConnectionId
从连接器服务获取此连接的 ID。对于给定的连接器服务,每个连接都有一个唯一的 ID,该 ID 在连接的生命周期内不会改变。
- 返回:
-
此连接的唯一 ID。这与连接器服务包含在其
JMXConnectionNotification中的 ID 相同。package description描述了连接 ID 的约定。 - 抛出:
IOException- 如果无法获取连接 ID,例如因为连接已关闭或断开。
-