激活连接器服务器,即启动对客户端连接的侦听。在连接器服务器已激活时,调用此方法没有任何作用。在连接器服务器已停止时,调用此方法将生成 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
- 如果连接器服务器无法启动。