- 所有超级接口:
-
AutoCloseable
,Closeable
- 所有已知实现类:
-
RMIConnector
JMX API连接器的客户端端点。此类型的对象可用于建立与连接器服务器的连接。
此类型的新创建对象未连接。必须在使用之前调用其 connect
方法。但是,由 JMXConnectorFactory.connect
创建的对象已经连接。
- 自 JDK 版本:
- 1.5
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addConnectionNotificationListener
(NotificationListener listener, NotificationFilter filter, Object handback) 添加一个监听器以通知连接状态的更改。void
close()
关闭客户端与服务器的连接。void
connect()
建立与连接器服务器的连接。void
建立与连接器服务器的连接。从连接器服务器获取此连接的 ID。返回表示远程 MBean 服务器的MBeanServerConnection
对象。getMBeanServerConnection
(Subject delegationSubject) 已弃用,将来会移除: 此 API 元素可能在将来的版本中被移除。此方法支持传统的主题委托功能,仅与其他已弃用且可能在将来的版本中被移除的 API 结合使用时才有用。void
从通知状态更改列表中移除监听器。void
从通知状态更改列表中移除监听器。
-
Field Details
-
CREDENTIALS
指定在连接期间发送到连接器服务器的凭据的属性的名称。与此属性关联的值(如果有)是适合服务器的
JMXAuthenticator
的可序列化对象。- 参见:
-
-
Method Details
-
connect
建立与连接器服务器的连接。此方法等效于
connect(null)
。- 抛出:
-
IOException
- 如果由于通信问题而无法建立连接。 -
SecurityException
- 如果由于安全原因无法建立连接。
-
connect
建立与连接器服务器的连接。
如果在此对象上已成功调用了
connect
,再次调用将不起作用。但是,如果在connect
之后调用了close()
,则新的connect
将抛出IOException
。否则,要么在此对象上从未调用过
connect
,要么已调用但产生了异常。然后调用connect
将尝试建立与连接器服务器的连接。- 参数:
-
env
- 连接的属性。此映射中的属性将覆盖创建JMXConnector
时指定的映射中的属性(如果有)。此参数可以为 null,相当于空映射。 - 抛出:
-
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
@Deprecated(since="21", forRemoval=true) MBeanServerConnection getMBeanServerConnection(Subject delegationSubject) throws IOException Deprecated, for removal: This API element is subject to removal in a future version.This method supported the legacy Subject Delegation feature, and is only useful in conjunction with other APIs which are deprecated and subject to removal in a future release. Consequently, this method is also deprecated and subject to removal. There is no replacement.返回表示远程 MBean 服务器的
MBeanServerConnection
对象,该对象代表提供的委托主题执行操作。对于给定的JMXConnector
和Subject
,对此方法的两次成功调用通常会返回相同的MBeanServerConnection
对象,尽管不是必需的。对于返回的
MBeanServerConnection
中的每个方法,调用该方法会导致在远程 MBean 服务器上代表给定的委托主题而不是经过身份验证的主题调用相应的方法。由 MBean 服务器方法返回的值将返回给客户端。如果 MBean 服务器方法产生Exception
,客户端将看到相同的Exception
。如果 MBean 服务器方法或尝试调用它产生Error
,则Error
将被包装在JMXServerErrorException
中,客户端将看到该异常。- 参数:
-
delegationSubject
- 将执行请求的Subject
。可以为 null,在这种情况下,请求将代表经过身份验证的主题执行。 - 返回:
-
通过将其方法转发到远程 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
的通知。实现还可以发送其他类型的通知。可以使用此方法添加任意数量的监听器。可以多次添加相同的监听器,具有相同或不同的过滤器和 handback 值。重复条目不会得到特殊处理。例如,如果使用相同的过滤器两次注册了一个监听器,则对于每个通知,其
handleNotification
方法将被调用两次。- 参数:
-
listener
- 用于接收连接状态通知的监听器。 -
filter
- 用于选择要传递给监听器的通知的过滤器,如果要传递所有通知,则为null。 -
handback
- 每个通知与监听器一起传递的对象。可以为null。 - 抛出:
-
NullPointerException
- 如果listener
为null。 - 参见:
-
removeConnectionNotificationListener
void removeConnectionNotificationListener(NotificationListener listener) throws ListenerNotFoundException 从要通知状态更改的列表中删除监听器。监听器必须先前已添加。如果有多个匹配的监听器,则全部将被移除。
- 参数:
-
listener
- 用于接收连接状态通知的监听器。 - 抛出:
-
NullPointerException
- 如果listener
为null。 -
ListenerNotFoundException
- 如果监听器未在此JMXConnector
中注册。 - 参见:
-
removeConnectionNotificationListener
void removeConnectionNotificationListener(NotificationListener l, NotificationFilter f, Object handback) throws ListenerNotFoundException 从要通知状态更改的列表中删除监听器。监听器必须先前已使用相同的三个参数添加。如果有多个匹配的监听器,则只会移除一个。
- 参数:
-
l
- 用于接收连接状态通知的监听器。 -
f
- 用于选择要传递给监听器的通知的过滤器。可以为null。 -
handback
- 每个通知与监听器一起传递的对象。可以为null。 - 抛出:
-
ListenerNotFoundException
- 如果监听器未在此JMXConnector
中注册,或者未使用给定的过滤器和handback注册。 - 参见:
-
getConnectionId
从连接服务器获取此连接的ID。对于给定的连接服务器,每个连接都将具有唯一的ID,在连接的生命周期内不会更改。
- 返回:
-
此连接的唯一ID。这与连接服务器在其
JMXConnectionNotification
中包含的ID相同。包描述
描述了连接ID的约定。 - 抛出:
-
IOException
- 如果无法获取连接ID,例如因为连接已关闭或中断。
-