public class RMIConnector extends Object implements JMXConnector, Serializable, JMXAddressable
与远程RMI连接器的连接。 通常,这样的连接使用JMXConnectorFactory 。 然而,专门的应用程序可以直接使用这个类,例如使用没有经过JNDI的RMIServer存根。
CREDENTIALS| Constructor and Description |
|---|
RMIConnector(JMXServiceURL url, Map<String,?> environment)
构造一个
RMIConnector将RMI连接器服务器与给定的地址连接。
|
RMIConnector(RMIServer rmiServer, Map<String,?> environment)
构造一个
RMIConnector使用给定的RMI存根。
|
| Modifier and Type | Method and Description |
|---|---|
void |
addConnectionNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
添加一个监听器以通知连接状态的变化。
|
void |
close()
关闭与其服务器的客户端连接。
|
void |
connect()
建立与连接器服务器的连接。
|
void |
connect(Map<String,?> environment)
建立与连接器服务器的连接。
|
JMXServiceURL |
getAddress()
该连接器的地址。
|
String |
getConnectionId()
从连接器服务器获取此连接的ID。
|
MBeanServerConnection |
getMBeanServerConnection()
返回表示远程MBean服务器的
MBeanServerConnection对象。
|
MBeanServerConnection |
getMBeanServerConnection(Subject delegationSubject)
返回一个
MBeanServerConnection远程MBean服务器的
MBeanServerConnection对象,代表所提供的委托主体执行操作。
|
void |
removeConnectionNotificationListener(NotificationListener listener)
从列表中删除一个监听器以通知状态更改。
|
void |
removeConnectionNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
从列表中删除一个监听器以通知状态更改。
|
String |
toString()
返回此对象的字符串表示形式。
|
public RMIConnector(JMXServiceURL url, Map<String,?> environment)
构造一个RMIConnector将RMI连接器服务器与给定的地址连接。
该地址可以使用以下语法之一直接引用到连接器服务器:
service:jmx:rmi://[host[:port]]/stub/encoded-stub
service:jmx:iiop://[host[:port]]/ior/encoded-IOR
(这里,方括号[]不是地址的一部分,但表示主机和端口是可选的。)
该地址可以指示通过JNDI查找RMI存根的位置,使用以下语法之一:
service:jmx:rmi://[host[:port]]/jndi/jndi-name
service:jmx:iiop://[host[:port]]/jndi/jndi-name
实现还可以识别额外的地址语法,例如:
service:jmx:iiop://[host[:port]]/stub/encoded-stub
url - RMI连接器服务器的地址。
environment - 指定如何进行连接的附加属性。
对于基于JNDI的地址,这些属性可以有效地包括由InitialContext识别的 JNDI 属性 。
此参数可以为空,这相当于一个空的Map。
IllegalArgumentException - 如果
url为空。
public RMIConnector(RMIServer rmiServer, Map<String,?> environment)
使用给定的RMI存根构造一个RMIConnector 。
rmiServer - 表示RMI连接器服务器的RMI存根。
environment - 指定如何进行连接的附加属性。
此参数可以为空,这相当于一个空的Map。
IllegalArgumentException - 如果
rmiServer为空。
public String toString()
返回此对象的字符串表示形式。 一般来说, toString方法返回一个“textually代表”这个对象的字符串。 结果应该是一个简明扼要的表达,容易让人阅读。
public JMXServiceURL getAddress()
该连接器的地址。
getAddress在接口
JMXAddressable
public void connect()
throws IOException
JMXConnector复制
建立与连接器服务器的连接。 此方法相当于connect(null) 。
connect中的
JMXConnector
IOException - 如果由于通信问题而无法建立连接,或者在
iiop协议的情况下,不支持RMI / IIOP
public void connect(Map<String,?> environment) throws IOException
JMXConnector
建立与连接器服务器的连接。
如果connect已经在此对象上成功调用,则再次调用它不起作用。 不过如果JMXConnector.close()被称为connect后,新的connect将会抛出一个IOException 。
否则, connect从未在此对象上被调用,或者已被调用但产生异常。 然后调用connect将尝试建立与连接器服务器的连接。
connect在接口
JMXConnector
environment - 连接的属性。
在此映射属性中时指定的地图覆盖性能JMXConnector被创造了,如果有的话。
此参数可以为null,这相当于一个空的地图。
IOException - 如果由于通信问题而无法建立连接,或者在
iiop协议的情况下,不支持RMI / IIOP
public String getConnectionId() throws IOException
JMXConnector
从连接器服务器获取此连接的ID。 对于给定的连接器服务器,每个连接将具有唯一的ID,在连接的生命周期内不会更改。
getConnectionId在界面
JMXConnector
JMXConnectionNotification中包含的ID相同。
package description描述了连接ID的约定。
IOException - 如果无法获取连接ID,例如因为连接被关闭或断开。
public MBeanServerConnection getMBeanServerConnection() throws IOException
JMXConnector
返回表示远程MBean服务器的MBeanServerConnection对象。 对于给定的JMXConnector ,两个成功调用此方法通常会返回相同的MBeanServerConnection对象,尽管这不是必需的。
对于返回的MBeanServerConnection中的每个方法,调用该方法将导致在远程MBean服务器中调用相应的方法。 MBean服务器方法返回的值是返回给客户端的值。 如果MBean服务器方法生成异常 ,客户端可以看到相同的异常 。 如果MBean服务器方法,或者试图调用它,产生Error ,所述Error被包裹在一个JMXServerErrorException ,其由客户端可见。
调用此方法相当于调用getMBeanServerConnection(null),这意味着没有指定委托主体,并且所有在MBeanServerConnection上调用的MBeanServerConnection必须使用经过身份验证的主题(如果有)。
getMBeanServerConnection在接口
JMXConnector
MBeanServerConnection接口的对象。
IOException - 如果无法创建有效的
MBeanServerConnection ,例如因为尚未建立与远程MBean服务器的连接(使用
connect方法)或已关闭或已断开连接。
public MBeanServerConnection getMBeanServerConnection(Subject delegationSubject) throws IOException
JMXConnector
返回一个MBeanServerConnection远程MBean服务器的MBeanServerConnection对象,代表所提供的委托主体执行操作。 对于给定的JMXConnector和Subject ,两个成功调用此方法通常会返回相同的MBeanServerConnection对象,尽管这不是必需的。
对于返回的MBeanServerConnection中的每个方法,调用该方法将导致相应的方法在远程MBean服务器中代表给定的授权对象而不是经过身份验证的主题进行调用。 MBean服务器方法返回的值是返回给客户端的值。 如果MBean服务器方法生成异常 ,客户端可以看到相同的异常 。 如果MBean服务器方法,或者试图调用它,产生Error ,所述Error被包裹在一个JMXServerErrorException ,其由客户端可见。
getMBeanServerConnection在界面
JMXConnector
delegationSubject -在Subject以其名义请求将被执行。
可以为null,在这种情况下,将代表被认证的主题(如果有的话)执行请求。
MBeanServerConnection通过将其方法转发到远程MBean服务器代表一给定委托主题的接口。
IOException - 如果无法创建有效的
MBeanServerConnection ,例如因为尚未建立与远程MBean服务器的连接(使用
connect方法),或者已关闭或已断开连接。
public void addConnectionNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
JMXConnector
添加一个监听器以通知连接状态的变化。 收听者将收到JMXConnectionNotification类型的通知 。 一个实现也可以发送其他类型的通知。
可以使用此方法添加任意数量的侦听器。 可以使用相同或不同的过滤器和回传值,多次添加相同的侦听器。 重复条目没有特殊处理。 例如,如果一个监听器被注册了两次,没有过滤器,那么它的handleNotification方法将被调用两次,每个通知。
addConnectionNotificationListener在接口
JMXConnector
listener - 接收连接状态通知的侦听器。
filter - 一个过滤器,用于选择要将哪些通知传递给侦听器;如果要传送所有通知,则为空。
handback - 与每个通知一起提供给侦听器的对象。
可以为null。
JMXConnector.removeConnectionNotificationListener(javax.management.NotificationListener) ,
NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
public void removeConnectionNotificationListener(NotificationListener listener) throws ListenerNotFoundException
JMXConnector
从列表中删除一个监听器以通知状态更改。 以前必须添加侦听器。 如果有多个匹配的侦听器,则全部被删除。
removeConnectionNotificationListener在接口
JMXConnector
listener - 接收连接状态通知的侦听器。
ListenerNotFoundException - 如果监听器未注册此
JMXConnector 。
JMXConnector.removeConnectionNotificationListener(NotificationListener, NotificationFilter, Object) ,
JMXConnector.addConnectionNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object) ,
NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
public void removeConnectionNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException
JMXConnector复制
从列表中删除一个监听器以通知状态更改。 先前已经添加了同样的三个参数的侦听器。 如果有多个匹配的侦听器,只有一个被删除。
removeConnectionNotificationListener在接口
JMXConnector
listener - 接收连接状态通知的侦听器。
filter - 一个过滤器,用于选择要将哪些通知传递给侦听器。
可以为null。
handback - 与每个通知一起提供给侦听器的对象。
可以为null。
ListenerNotFoundException - 如果监听器未注册此
JMXConnector ,或未注册给定过滤器和回传。
JMXConnector.removeConnectionNotificationListener(NotificationListener) ,
JMXConnector.addConnectionNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object) ,
NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
public void close()
throws IOException
JMXConnector
关闭与其服务器的客户端连接。 使用由JMXConnector.getMBeanServerConnection()返回的MBeanServerConnection的任何持续的或新的请求将获得一个IOException 。
如果close已经在此对象上成功调用,则再次调用它不起作用。 如果close从未被调用,或者如果被调用但产生异常,则将尝试关闭连接。 这个尝试可以成功,在这种情况下, close将正常返回,否则可能会产生异常。
关闭连接是一个潜在的慢操作。 例如,如果服务器崩溃,则关闭操作可能需要等待网络协议超时。 不想封闭操作的调用者应该在单独的线程中执行。
close在接口
Closeable
close中的
AutoCloseable
close在接口
JMXConnector
IOException - 如果连接不能被干净地关闭。
如果抛出此异常,则不知道连接的服务器端是否已完全关闭。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.