- 所有已实现的接口:
-
Closeable
,Serializable
,AutoCloseable
,JMXAddressable
,JMXConnector
远程RMI连接。通常,这些连接是使用JMXConnectorFactory
进行的。但是,专门的应用程序可以直接使用这个类,例如使用未经过JNDI获取的RMIServer
存根。
- 自版本:
- 1.5
- 参见:
-
Field Summary
Fields declared in interface javax.management.remote.JMXConnector
CREDENTIALS
-
Constructor Summary
ConstructorDescriptionRMIConnector
(JMXServiceURL url, Map<String, ?> environment) 构造一个将连接到给定地址的RMI连接器的RMIConnector
。RMIConnector
(RMIServer rmiServer, Map<String, ?> environment) 使用给定的RMI存根构造一个RMIConnector
。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
addConnectionNotificationListener
(NotificationListener listener, NotificationFilter filter, Object handback) 添加一个监听器以通知连接状态的更改。void
close()
关闭客户端连接到其服务器。void
connect()
建立与连接器服务器的连接。void
建立与连接器服务器的连接。此连接器的地址。从连接器服务器获取此连接的ID。返回表示远程MBean服务器的MBeanServerConnection
对象。getMBeanServerConnection
(Subject delegationSubject) 返回表示远程MBean服务器的MBeanServerConnection
对象,代表提供的委托主题执行操作。void
从通知状态更改列表中删除一个监听器。void
removeConnectionNotificationListener
(NotificationListener listener, NotificationFilter filter, Object handback) 从通知状态更改列表中删除一个监听器。toString()
返回此对象的字符串表示形式。
-
Constructor Details
-
RMIConnector
构造一个将连接到给定地址的
RMIConnector
。地址可以直接引用连接器服务器,使用以下语法:
service:jmx:rmi://[host[:port]]/stub/encoded-stub
(这里,方括号
[]
不是地址的一部分,而是表示主机和端口是可选的。)地址也可以指示通过JNDI查找RMI存根的位置,使用以下语法:
service:jmx:rmi://[host[:port]]/jndi/jndi-name
实现还可以识别其他地址语法,例如:
service:jmx:myprotocolname://[host[:port]]/stub/encoded-stub
- 参数:
-
url
- RMI连接器服务器的地址。 -
environment
- 指定如何建立连接的附加属性。对于基于JNDI的地址,这些属性可以包括InitialContext
识别的JNDI属性。此参数可以为null,相当于空Map。 - 抛出:
-
IllegalArgumentException
- 如果url
为null。
-
RMIConnector
使用给定的RMI存根构造一个
RMIConnector
。- 参数:
-
rmiServer
- 表示RMI连接器服务器的RMI存根。 -
environment
- 指定如何建立连接的附加属性。此参数可以为null,相当于空Map。 - 抛出:
-
IllegalArgumentException
- 如果rmiServer
为null。
-
-
Method Details
-
toString
返回此对象的字符串表示形式。通常,
toString
方法返回一个"文本表示"此对象的字符串。结果应该是简洁但信息丰富的表示,易于人阅读。 -
getAddress
此连接器的地址。
- 指定者:
-
getAddress
在接口JMXAddressable
- 返回:
- 此连接器的地址,如果没有则为null。
- 自版本:
- 1.6
-
connect
从接口复制的描述:JMXConnector
建立与连接器服务器的连接。此方法等效于
connect(null)
。- 指定者:
-
connect
在接口JMXConnector
- 抛出:
-
IOException
- 如果由于通信问题而无法建立连接
-
connect
从接口复制的描述:JMXConnector
建立与连接器服务器的连接。
如果在此对象上已成功调用
connect
,再次调用将不起作用。但是,如果在connect
之后调用了JMXConnector.close()
,则新的connect
将抛出IOException
。否则,要么在此对象上从未调用过
connect
,要么已调用但产生了异常。然后调用connect
将尝试建立与连接器服务器的连接。- 指定者:
-
connect
在接口JMXConnector
- 参数:
-
environment
- 连接的属性。此映射中的属性将覆盖创建JMXConnector
时指定的映射中的属性(如果有)。此参数可以为null,相当于空映射。 - 抛出:
-
IOException
- 如果由于通信问题而无法建立连接
-
getConnectionId
从接口复制的描述:JMXConnector
从连接器服务器获取此连接的ID。对于给定的连接器服务器,每个连接都将有一个唯一的ID,在连接的生命周期内不会更改。
- 指定者:
-
getConnectionId
在接口JMXConnector
- 返回:
-
此连接的唯一ID。这与连接器服务器在其
JMXConnectionNotification
中包含的ID相同。包描述
描述了连接ID的约定。 - 抛出:
-
IOException
- 如果无法获取连接ID,例如因为连接已关闭或中断。
-
getMBeanServerConnection
从接口复制的描述:JMXConnector
返回一个表示远程MBean服务器的
MBeanServerConnection
对象。对于给定的JMXConnector
,两次成功调用此方法通常会返回相同的MBeanServerConnection
对象,尽管这不是必需的。对于返回的
MBeanServerConnection
中的每个方法,调用该方法会导致在远程MBean服务器中调用相应的方法。由MBean服务器方法返回的值将返回给客户端。如果MBean服务器方法产生Exception
,客户端将看到相同的Exception
。如果MBean服务器方法或尝试调用它产生Error
,则Error
将被包装在一个JMXServerErrorException
中,客户端将看到它。调用此方法等同于调用
getMBeanServerConnection(null)
,这意味着未指定委托主题,并且在MBeanServerConnection
上调用的所有操作必须使用经过身份验证的主题(如果有)。- 指定者:
-
getMBeanServerConnection
在接口JMXConnector
- 返回:
-
实现
MBeanServerConnection
接口的对象,通过将其方法转发到远程MBean服务器。 - 抛出:
-
IOException
- 如果无法创建有效的MBeanServerConnection
,例如因为尚未建立与远程MBean服务器的连接(使用connect
方法),或者已关闭,或者已中断。
-
getMBeanServerConnection
从接口复制的描述:JMXConnector
返回一个表示远程MBean服务器的
MBeanServerConnection
对象,该对象代表为提供的委托主题执行操作。对于给定的JMXConnector
和Subject
,两次成功调用此方法通常会返回相同的MBeanServerConnection
对象,尽管这不是必需的。对于返回的
MBeanServerConnection
中的每个方法,调用该方法会导致在远程MBean服务器中代表给定的委托主题而不是经过身份验证的主题调用相应的方法。由MBean服务器方法返回的值将返回给客户端。如果MBean服务器方法产生Exception
,客户端将看到相同的Exception
。如果MBean服务器方法或尝试调用它产生Error
,则Error
将被包装在一个JMXServerErrorException
中,客户端将看到它。- 指定者:
-
getMBeanServerConnection
在接口JMXConnector
- 参数:
-
delegationSubject
- 将执行请求的Subject
。可以为null,在这种情况下,请求将代表经过身份验证的主题执行。 - 返回:
-
实现
MBeanServerConnection
接口的对象,通过将其方法转发到远程MBean服务器代表给定的委托主题。 - 抛出:
-
IOException
- 如果无法创建有效的MBeanServerConnection
,例如因为尚未建立与远程MBean服务器的连接(使用connect
方法),或者已关闭,或者已中断。
-
addConnectionNotificationListener
public void addConnectionNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) 从接口复制的描述:JMXConnector
添加一个监听器以通知连接状态的更改。监听器将接收类型为
JMXConnectionNotification
的通知。实现还可以发送其他类型的通知。可以使用此方法添加任意数量的监听器。相同的监听器可以使用相同或不同的过滤器和手动回传值多次添加。对于重复条目没有特殊处理。例如,如果一个监听器没有过滤器注册两次,那么对于每个通知,它的
handleNotification
方法将被调用两次。- 指定者:
-
addConnectionNotificationListener
在接口JMXConnector
- 参数:
-
listener
- 用于接收连接状态通知的监听器。 -
filter
- 选择要传递给监听器的通知的过滤器,如果要传递所有通知,则为null。 -
handback
- 与每个通知一起提供给监听器的对象。可以为null。 - 参见:
-
removeConnectionNotificationListener
public void removeConnectionNotificationListener(NotificationListener listener) throws ListenerNotFoundException 从接口复制的描述:JMXConnector
从通知更改状态的列表中删除一个监听器。监听器必须先前已添加。如果有多个匹配的监听器,则所有监听器都将被移除。
- 指定者:
-
removeConnectionNotificationListener
在接口JMXConnector
- 参数:
-
listener
- 用于接收连接状态通知的监听器。 - 抛出:
-
ListenerNotFoundException
- 如果监听器未在此JMXConnector
中注册。 - 参见:
-
removeConnectionNotificationListener
public void removeConnectionNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException 从接口复制的描述:JMXConnector
从通知更改状态的列表中删除一个监听器。监听器必须先前已使用相同的三个参数添加。如果有多个匹配的监听器,则只会删除一个。
- 指定者:
-
removeConnectionNotificationListener
在接口JMXConnector
中指定 - 参数:
-
listener
- 用于接收连接状态通知的监听器。 -
filter
- 用于选择要传递给监听器的通知的过滤器。可以为null。 -
handback
- 与每个通知一起传递给监听器的对象。可以为null。 - 抛出:
-
ListenerNotFoundException
- 如果监听器未向此JMXConnector
注册,或者未使用给定的过滤器和handback注册。 - 参见:
-
close
从接口中复制的描述:JMXConnector
关闭客户端与服务器的连接。使用由
JMXConnector.getMBeanServerConnection()
返回的MBeanServerConnection的任何正在进行或新的请求都将收到IOException
。如果在此对象上已成功调用了
close
,再次调用将不起作用。如果从未调用过close
,或者调用了但产生了异常,则将尝试关闭连接。此尝试可能成功,此时close
将正常返回,或者可能生成异常。关闭连接是一个潜在缓慢的操作。例如,如果服务器崩溃,关闭操作可能需要等待网络协议超时。不希望在关闭操作中阻塞的调用者应该在单独的线程中执行。
- 指定者:
-
close
在接口AutoCloseable
中指定 - 指定者:
-
close
在接口Closeable
中指定 - 指定者:
-
close
在接口JMXConnector
中指定 - 抛出:
-
IOException
- 如果无法清除连接。如果抛出此异常,则不知道连接的服务器端是否已干净关闭。
-