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