|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.management.remote.rmi
类 RMIConnectorServer
java.lang.Object javax.management.NotificationBroadcasterSupport javax.management.remote.JMXConnectorServer javax.management.remote.rmi.RMIConnectorServer
-
public class RMIConnectorServer
- extends JMXConnectorServer
JMX API 连接器服务器,用于从远程客户端创建基于 RMI 的连接。通常情况下,使用 JMXConnectorServerFactory
建立这样的连接器服务器。但是,专门的应用程序可直接使用此类,例如使用 RMIServerImpl
对象。
- 从以下版本开始:
- 1.5
字段摘要 | |
---|---|
static String |
JNDI_REBIND_ATTRIBUTE 属性名称,它指定代表 RMI 连接器服务器的 RMIServer stub 是否应重写位于同一地址的现有 stub。 |
static String |
RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE 属性名称,它指定了与此连接器一起创建的 RMI 对象的 RMIClientSocketFactory 。 |
static String |
RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE 属性名称,它指定了与此连接器一起创建的 RMI 对象的 RMIServerSocketFactory 。 |
从类 javax.management.remote.JMXConnectorServer 继承的字段 |
---|
AUTHENTICATOR |
构造方法摘要 | |
---|---|
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 。 |
方法摘要 | |
---|---|
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 |
start() 激活连接器服务器,即启动对客户端连接的侦听。 |
void |
stop() 取消激活连接器服务器,即,停止对客户端连接的侦听。 |
JMXConnector |
toJMXConnector(Map<String,?> env) 返回此连接器服务器的客户端 stub。 |
从类 javax.management.remote.JMXConnectorServer 继承的方法 |
---|
getConnectionIds, getMBeanServer, getNotificationInfo, postDeregister, postRegister, preDeregister, preRegister, setMBeanServerForwarder |
从类 javax.management.NotificationBroadcasterSupport 继承的方法 |
---|
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
JNDI_REBIND_ATTRIBUTE
public static final String JNDI_REBIND_ATTRIBUTE
-
属性名称,它指定代表 RMI 连接器服务器的
RMIServer
stub 是否应重写位于同一地址的现有 stub。与此属性关联的值(如果有)应为与"true"
或"false"
相等(忽略大小写)的字符串。默认值为 false。- 另请参见:
- 常量字段值
RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE
public static final String RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE
-
属性名称,它指定了与此连接器一起创建的 RMI 对象的
RMIClientSocketFactory
。与此属性关联的值的类型必须为RMIClientSocketFactory
,并且只能在创建连接器服务器时提供的Map
参数中指定。- 另请参见:
- 常量字段值
RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE
public static final String RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE
-
属性名称,它指定了与此连接器一起创建的 RMI 对象的
RMIServerSocketFactory
。与此属性关联的值的类型必须为RMIServerSocketFactory
,并且只能在创建连接器服务器时提供的Map
参数中指定。- 另请参见:
- 常量字段值
构造方法详细信息 |
---|
RMIConnectorServer
public RMIConnectorServer(JMXServiceURL url, Map<String,?> environment) throws IOException
-
建立
RMIConnectorServer
。此方法与调用RMIConnectorServer(directoryURL,environment,null,null)
具有相同的效果。- 参数:
-
url
- 一个定义如何创建连接器服务器的 URL。不能为 null。 -
environment
- 控制着 RMI 对象的创建和存储的属性。可以为 null,它等效于一个空映射。 - 抛出:
-
IllegalArgumentException
- 如果url
为 null。 -
MalformedURLException
- 如果url
不符合 RMI 连接器的语法,或者其协议不能由此实现识别。使用此构造方法时,只有 "rmi" 和 "jrmp" 为有效的。 -
IOException
- 如果出于某种原因无法创建连接器服务器,或者其start
方法不可避免地失败。
RMIConnectorServer
public RMIConnectorServer(JMXServiceURL url, Map<String,?> environment, MBeanServer mbeanServer) throws IOException
-
为给定的 MBean 服务器建立一个
RMIConnectorServer
。此方法与调用RMIConnectorServer(directoryURL,environment,null,mbeanServer)
具有相同的效果。- 参数:
-
url
- 一个定义如何创建连接器服务器的 URL。不能为 null。 -
environment
- 控制着 RMI 对象的创建和存储的属性。可以为 null,它等效于一个空映射。 -
mbeanServer
- 新的连接器服务器将与其连接的 MBean 服务器,或者如果它将通过注册为 MBean 服务器中的一个 MBean 进行连接,则为 null。 - 抛出:
-
IllegalArgumentException
- 如果url
为 null。 -
MalformedURLException
- 如果url
不符合 RMI 连接器的语法,或者其协议不能由此实现识别。使用此构造方法时,只有 "rmi" 和 "jrmp" 为有效的。 -
IOException
- 如果出于某种原因无法创建连接器服务器,或者其start
方法不可避免地失败。
RMIConnectorServer
public RMIConnectorServer(JMXServiceURL url, Map<String,?> environment, RMIServerImpl rmiServerImpl, MBeanServer mbeanServer) throws IOException
-
为给定的 MBean 服务器建立一个
RMIConnectorServer
。- 参数:
-
url
- 一个定义如何创建连接器服务器的 URL。不能为 null。 -
environment
- 控制着 RMI 对象的创建和存储的属性。可以为 null,它等效于一个空映射。 -
rmiServerImpl
- RMIServer 接口的一个实现,与 url 中指定的协议类型一致。如果此参数为非 null,则 url 指定的协议类型没有约束,假定其为有效。否则,将只识别 "rmi" 和 "iiop"。 -
mbeanServer
- 新的连接器服务器将与其连接的 MBean 服务器,或者如果它将通过注册为 MBean 服务器中的一个 MBean 进行连接,则为 null。 - 抛出:
-
IllegalArgumentException
- 如果url
为 null。 -
MalformedURLException
- 如果url
不符合 RMI 连接器的语法,或者其协议不能由此实现识别。在 rmiServerImpl 为 null 时,只能识别 "rmi" 和 "jrmp"。 -
IOException
- 如果出于某种原因无法创建连接器服务器,或者其start
方法不可避免地失败。 - 另请参见:
-
start()
方法详细信息 |
---|
toJMXConnector
public JMXConnector toJMXConnector(Map<String,?> env) throws IOException
-
返回此连接器服务器的客户端 stub。客户端 stub 为一个可序列化的对象,其
connect
方法可用于建立一个到此连接器服务器的新连接。 -
- 指定者:
-
接口
JMXConnectorServerMBean
中的toJMXConnector
- 覆盖:
-
类
JMXConnectorServer
中的toJMXConnector
-
- 参数:
-
env
- 客户端连接参数,与提供给JMXConnector.connect(Map)
的参数具有相同的类型。可以为 null,它等效于一个空映射。 - 返回:
- 可用于建立到此连接器服务器的新连接的客户端 stub。
- 抛出:
-
UnsupportedOperationException
- 如果此连接器服务器不支持生成客户端 stub。 -
IllegalStateException
- 如果未启动 JMXConnectorServer(请参阅isActive()
)。 -
IOException
- 如果存在通信问题而导致无法创建 stub。
start
public void start() throws IOException
-
激活连接器服务器,即启动对客户端连接的侦听。在连接器服务器已激活时,调用此方法没有任何作用。在连接器服务器已停止时,调用此方法将生成
IOException
。此方法第一次调用时的行为取决于构造时提供的如下所示的参数。
首先,需要一个
RMIServerImpl
的子类的对象,以便将连接器服务器从 RMI 导出:- 如果原先为构造方法提供了一个
RMIServerImpl
,则使用该值。 - 否则,如果为构造方法提供的
JMXServiceURL
的协议部分为iiop
,则创建一个RMIIIOPServerImpl
类型的对象。 - 否则,如果
JMXServiceURL
为 null,或者其协议部分为rmi
,则创建一个类型为RMIJRMPServerImpl
的对象。 - 否则,此实现可能创建一个特定于实现的
RMIServerImpl
,或者抛出MalformedURLException
。
如果给定的地址包含一个 JNDI 目录 URL(如在
javax.management.remote.rmi
的包文档中的指定),则该RMIConnectorServer
通过将RMIServerImpl
绑定到给定地址进行引导。如果
JMXServiceURL
的 URL 路径部分为空或一个单独的斜线 (/
),则 RMI 对象将不会绑定到一个目录。相反,RMIConnectorServer 地址(由getAddress()
返回)的 URL 路径中将包含一个对它的引用的编码。javax.management.remote.rmi
的包文档中有对rmi
和iiop
的编码的描述。当 URL 路径既不为空又不是一个 JNDI 目录 URL,或者当协议既不是
rmi
又不是iiop
时的行为由实现定义,并且在创建或启动连接器服务器时可能包含抛出MalformedURLException
的行为。 - 如果原先为构造方法提供了一个
-
- 抛出:
-
IllegalStateException
- 如果此连接器服务器尚未连接到 MBean 服务器。 -
IOException
- 如果连接器服务器无法启动。
stop
public void stop() throws IOException
-
取消激活连接器服务器,即,停止对客户端连接的侦听。调用此方法还将关闭所有由此服务器建立的客户端连接。返回此方法后,无论正常返回还是抛出异常,连接器服务器都不再创建任何新的客户端连接。
连接器服务器一旦停止就无法再启动。
在连接器服务器已停止时,调用此方法没有任何效果。在连接器服务器尚未启动时调用此方法将永久禁用连接器服务器对象。
如果关闭客户端连接导致异常,则该异常不会从此方法抛出。而会从 MBean 发出一个
JMXConnectionNotification
,同时显示无法关闭的连接的连接 ID。关闭连接器服务器是一个潜在的慢操作。例如,如果具有打开连接的客户端发生崩溃,则关闭操作不得不等待网络协议超时。不希望关闭操作出现阻塞的调用者应在单独的线程中处理关闭。
此方法在连接器服务器的
RMIServerImpl
对象上调用close
方法。如果
RMIServerImpl
由start
方法绑定到 JNDI 目录,则该方法可解除到目录的绑定。 -
- 抛出:
-
IOException
- 如果无法完全关闭服务器,或者如果无法从目录解除RMIServerImpl
的绑定。抛出此异常时,服务器已经尝试适当地关闭所有的客户端连接、调用RMIServerImpl.close()
并解除RMIServerImpl
到其目录的绑定。除了那些服务器尝试将它们关闭时生成异常的连接,所有的客户端连接都被关闭。