public class RMIConnectorServer extends JMXConnectorServer
JMX API创建连接器服务器从远程客户端基于RMI连接。通常,这种连接器服务器都采用JMXConnectorServerFactory
。然而,专门的应用程序可以直接使用这个类,例如一个RMIServerImpl
对象。
Modifier and Type | Field and Description |
---|---|
static String |
JNDI_REBIND_ATTRIBUTE
名称的属性,指定是否代表一个RMI连接器服务器应重写现有的存根在同一地址的
RMIServer 存根。
|
static String |
RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE
该属性用于指定与此连接器创建RMI对象的
RMIClientSocketFactory 名称。
|
static String |
RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE
该属性用于指定与此连接器创建RMI对象的
RMIServerSocketFactory 名称。
|
AUTHENTICATOR
Constructor and Description |
---|
RMIConnectorServer(JMXServiceURL url, Map<String,?> environment)
让一个
RMIConnectorServer 。
|
RMIConnectorServer(JMXServiceURL url, Map<String,?> environment, MBeanServer mbeanServer)
对给定的MBean服务器的
RMIConnectorServer 。
|
RMIConnectorServer(JMXServiceURL url, Map<String,?> environment, RMIServerImpl rmiServerImpl, MBeanServer mbeanServer)
对给定的MBean服务器的
RMIConnectorServer 。
|
Modifier and Type | Method and Description |
---|---|
protected void |
connectionClosed(String connectionId, String message, Object userData)
当客户端连接被正常关闭时调用子类调用。
|
protected void |
connectionFailed(String connectionId, String message, Object userData)
当客户端连接失败时,由子类调用。
|
protected void |
connectionOpened(String connectionId, String message, Object userData)
当打开一个新的客户端连接时调用子类调用。
|
JMXServiceURL |
getAddress()
此连接器服务器的地址。
|
Map<String,?> |
getAttributes()
此连接器服务器的属性。
|
boolean |
isActive()
确定连接器服务器是否已激活。
|
void |
setMBeanServerForwarder(MBeanServerForwarder mbsf)
插入一个对象,截取MBean服务器到服务器的请求,通过此连接器。
|
void |
start()
激活连接器服务器,即开始侦听客户端连接。
|
void |
stop()
停用连接服务器,即停止侦听客户端连接。
|
JMXConnector |
toJMXConnector(Map<String,?> env)
返回此连接器服务器的客户端存根。
|
getConnectionIds, getMBeanServer, getNotificationInfo, postDeregister, postRegister, preDeregister, preRegister
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
public static final String JNDI_REBIND_ATTRIBUTE
名称的属性,指定是否代表一个RMI连接器服务器应重写现有的存根在同一地址的RMIServer
存根。与此相关的属性值,如果有,应该是一个字符串,是平等的,忽略的情况下,对"true"
或"false"
。默认值是错误的。
public static final String RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE
该属性用于指定与此连接器创建RMI对象的RMIClientSocketFactory
名称。这个属性关联的值的类型必须是RMIClientSocketFactory
只能在Map
论点提供创建连接器服务器时指定的。
public static final String RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE
该属性用于指定与此连接器创建RMI对象的RMIServerSocketFactory
名称。这个属性关联的值的类型必须是RMIServerSocketFactory
只能在Map
论点提供创建连接器服务器时指定的。
public RMIConnectorServer(JMXServiceURL url, Map<String,?> environment) throws IOException
让一个RMIConnectorServer
。这相当于调用RMIConnectorServer(directoryURL,environment,null,null)
url
- URL定义如何创建连接器服务器。不能为空。
environment
属性管理创造和RMI对象存储。可以是空的,这相当于一个空的Map。
IllegalArgumentException
-如果
url
是空的。
MalformedURLException
-如果
url
不符合一个RMI连接器的语法,或者如果它是不被认可的协议实现。只有“RMI”和“操作”是有效时,就会使用默认构造函数。
IOException
如果连接器服务器不能因为某些原因或者其
start
方法会失败,这是不可避免的了。
public RMIConnectorServer(JMXServiceURL url, Map<String,?> environment, MBeanServer mbeanServer) throws IOException
对给定的MBean服务器的RMIConnectorServer
。这相当于调用RMIConnectorServer(directoryURL,environment,null,mbeanServer)
url
- URL定义如何创建连接器服务器。不能为空。
environment
属性管理创造和RMI对象存储。可以是空的,这相当于一个空的Map。
mbeanServer
的MBean服务器的新连接服务器的连接,或null如果将被注册在MBean服务器的MBean附。
IllegalArgumentException
-如果
url
是空的。
MalformedURLException
-如果
url
不符合一个RMI连接器的语法,或者如果它是不被认可的协议实现。只有“RMI”和“操作”是有效时,就会使用默认构造函数。
IOException
如果连接器服务器不能因为某些原因或者其
start
方法会失败,这是不可避免的了。
public RMIConnectorServer(JMXServiceURL url, Map<String,?> environment, RMIServerImpl rmiServerImpl, MBeanServer mbeanServer) throws IOException
对给定的MBean服务器的RMIConnectorServer
。
url
- URL定义如何创建连接器服务器。不能为空。
environment
属性管理创造和RMI对象存储。可以是空的,这相当于一个空的Map。
rmiServerImpl
的rmiserver接口的一个实现,在
URL指定协议类型一致。如果这个参数是非空的,由指定的
URL协议类型是不受约束的,并被认为是有效的。否则,只有“RMI”和“操作”会被认可。
mbeanServer
的MBean服务器的新连接服务器的连接,或null如果将被注册在MBean服务器的MBean附。
IllegalArgumentException
-如果
url
是空的。
MalformedURLException
-如果
url
不符合一个RMI连接器的语法,或者如果它是不被认可的协议实现。只有“RMI”和“IIOP”是公认的
rmiserverimpl是空的。
IOException
如果连接器服务器不能因为某些原因或者其
start
方法会失败,这是不可避免的了。
start()
public JMXConnector toJMXConnector(Map<String,?> env) throws IOException
返回此连接器服务器的客户端存根。客户端存根是可序列化的对象的connect
方法可以用来使一个新的连接,这个连接服务器。
toJMXConnector
接口
JMXConnectorServerMBean
toJMXConnector
方法重写,继承类
JMXConnectorServer
env
-相同的排序,可以提供给
JMXConnector.connect(Map)
客户端连接参数。可以是空的,这相当于一个空的Map。
UnsupportedOperationException
-如果此连接器服务器不支持客户端存根的生成。
IllegalStateException
-如果jmxconnectorserver不启动(见
isActive()
)。
IOException
-如果一个通信问题意味着一个不能被创造。
public void start() throws IOException
激活连接器服务器,即开始侦听客户端连接。调用此方法时,连接器服务器已经激活,没有任何效果。调用此方法时,连接器服务器已停止将产生一个IOException
。
这种方法的行为,当第一次调用时,取决于在建设提供的参数,如下面所述。
首先,对RMIServerImpl
子类对象是必需的,出口通过RMI连接器服务器:
RMIServerImpl
提供构造器,使用它。JMXServiceURL
协议部分iiop
,RMIIIOPServerImpl
类创建一个对象。JMXServiceURL
为空,或协议的一部分,是rmi
,RMIJRMPServerImpl
类创建一个对象。RMIServerImpl
或者可以把MalformedURLException
。如果给定的地址包括一个JNDI目录的URL为javax.management.remote.rmi
包文件规定,那么这将引导RMIConnectorServer
结合RMIServerImpl
到指定地址。
如果该JMXServiceURL
URL路径的一部分是空的或一个斜杠(/
),然后RMI对象不会被绑定到一个目录。相反,一个对它的引用将在该rmiconnectorserver地址URL路径编码(由getAddress()
)。对于rmi
和iiop
编码是在包的文档描述了javax.management.remote.rmi
。
当URL路径不是空的也不是一个JNDI目录的行为,或当协议不rmi
也iiop
,是实现定义的,并可能包括投掷MalformedURLException
当连接器服务器创建或启动时。
IllegalStateException
如果连接器服务器没有连接到一个MBean服务器。
IOException
如果连接器服务器无法启动,或在
iiop
协议的情况下,那RMI/IIOP是不支持的。
public void stop() throws IOException
停用连接服务器,即停止侦听客户端连接。调用此方法也将关闭此服务器所做的所有客户端连接。此方法返回后,无论是正常还是异常,连接器服务器将不会创建任何新的客户端连接。
一旦连接器服务器已被停止,它不能再次启动。
调用此方法时,连接器服务器已被停止,没有任何效果。调用此方法当连接器服务器尚未启动时,将永久禁用连接器服务器对象。
如果关闭客户端连接产生一个异常,则不会从该方法中抛出异常。一个JMXConnectionNotification
发出这MBean的连接,无法关闭连接ID。
关闭连接器服务器是一个潜在的缓慢操作。例如,如果一个开放连接的客户机已崩溃,关闭操作可能必须等待网络协议超时。不想阻塞关闭操作的调用方应在另一个线程中这样做。
此方法调用的方法在连接服务器的RMIServerImpl
对象close
。
如果RMIServerImpl
是必然的start
方法JNDI目录,它是从目录的方法了。
IOException
-如果服务器不能关闭干净,或者
RMIServerImpl
不能绑定目录。当抛出该异常,服务器已经试图关闭所有客户端的连接,如果合适的话;叫
RMIServerImpl.close()
;和绑定
RMIServerImpl
从它的目录,如果合适的话。所有的客户端连接都关闭,除非当服务器试图关闭它们时产生异常的情况除外。
public boolean isActive()
JMXConnectorServerMBean
public JMXServiceURL getAddress()
JMXConnectorServerMBean
此连接器服务器的地址。
返回的地址可能不准确的原始JMXServiceURL
,提供创建连接器服务器时,由于原来的地址不一定是完整的。例如,当启动连接器服务器时,可以动态分配端口号。相反,返回的地址是实际的JMXConnectorServer
JMXServiceURL
。这是JMXConnectorFactory.connect(JMXServiceURL)
供应客户的地址。
注意,返回的地址可能null
如果JMXConnectorServer
尚未active
。
public Map<String,?> getAttributes()
JMXConnectorServerMBean
此连接器服务器的属性。
public void setMBeanServerForwarder(MBeanServerForwarder mbsf)
JMXConnectorServerMBean
插入一个对象,截取MBean服务器到服务器的请求,通过此连接器。这个对象将提供任何新的连接通过此连接器服务器创建的MBeanServer
。现有的连接不受影响。
这种方法可以称为一次以上不同MBeanServerForwarder
对象。其结果是一个链的代理。最后一个加入的是链中的第一个。更详细的:
如果此连接器服务器已与MBeanServer
对象相关的对象,然后给mbsf.setMBeanServer
。如果这样做产生一个异常,该方法将抛出一个没有任何其他影响的异常。
如果这个连接器是不是已经有MBeanServer
对象相关,或者mbsf.setMBeanServer
调用刚才提到成功,然后mbsf
成为该连接器服务器的MBeanServer
。
setMBeanServerForwarder
接口
JMXConnectorServerMBean
setMBeanServerForwarder
方法重写,继承类
JMXConnectorServer
mbsf
-新的
MBeanServerForwarder
。
protected void connectionOpened(String connectionId, String message, Object userData)
JMXConnectorServer
当打开一个新的客户端连接时调用子类调用。增加了connectionId
到返回的列表JMXConnectorServer.getConnectionIds()
,然后发出一JMXConnectionNotification.OPENED
型JMXConnectionNotification
。
connectionOpened
方法重写,继承类
JMXConnectorServer
connectionId
-新连接的ID。这必须是不同于先前由这个连接器服务器打开的任何连接的身份证。
message
-发射
JMXConnectionNotification
消息。可以为空。看到
Notification.getMessage()
。
userData
-发出的
userData
JMXConnectionNotification
。可以为空。看到
Notification.getUserData()
。
protected void connectionClosed(String connectionId, String message, Object userData)
JMXConnectorServer
当客户端连接被正常关闭时调用子类调用。从列表中删除connectionId
返回JMXConnectorServer.getConnectionIds()
,然后发出一JMXConnectionNotification
JMXConnectionNotification.CLOSED
型。
connectionClosed
方法重写,继承类
JMXConnectorServer
connectionId
-关闭连接的ID。
message
-发射
JMXConnectionNotification
消息。可以为空。看到
Notification.getMessage()
。
userData
-发出的
userData
JMXConnectionNotification
。可以为空。看到
Notification.getUserData()
。
protected void connectionFailed(String connectionId, String message, Object userData)
JMXConnectorServer
当客户端连接失败时,由子类调用。从列表中删除connectionId
返回JMXConnectorServer.getConnectionIds()
,然后发出一JMXConnectionNotification.FAILED
型JMXConnectionNotification
。
connectionFailed
方法重写,继承类
JMXConnectorServer
connectionId
-失败连接ID。
message
-发射
JMXConnectionNotification
消息。可以为空。看到
Notification.getMessage()
。
userData
-发出的
userData
JMXConnectionNotification
。可以为空。看到
Notification.getUserData()
。
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.