- java.lang.Object
-
- javax.management.remote.JMXConnectorFactory
-
public class JMXConnectorFactory extends Object
工厂创建JMX API连接器客户端。 没有这个类的实例。
连接通常使用此类的
connect
方法。 更高级的应用程序可以分离连接器客户端的创建,使用newJMXConnector
和建立连接本身,使用JMXConnector.connect(Map)
。每个客户端都由一个
JMXConnectorProvider
的实例创建。 这个实例如下。 假设给定的JMXServiceURL
看起来像"service:jmx:protocol:remainder"
。 那么工厂将尝试找到适合的JMXConnectorProvider
protocol
。 字符的每一次出现+
或-
在protocol
被替换.
或_
分别。搜索提供程序包列表如下:
- 如果
environment
参数为newJMXConnector
包含密钥jmx.remote.protocol.provider.pkgs
则相关联的值是提供程序包列表。 - 否则,如果系统属性
jmx.remote.protocol.provider.pkgs
存在,则其值是提供程序包列表。 - 否则,没有提供程序包列表。
提供程序包列表是一个字符串,被解释为用垂直条(
|
)分隔的非空Java包名称的列表。 如果字符串为空,那么提供程序包列表也是如此。 如果提供程序包列表不是字符串,或者包含一个空字符串的元素,则抛出JMXProviderException
。如果提供程序包列表存在且不为空,则对于列表中的每个元素
pkg
,工厂将尝试加载该类pkg.protocol.ClientProvider
如果
environment
参数为newJMXConnector
包含密钥jmx.remote.protocol.provider.class.loader
则相关联的值是用于加载提供程序的类加载器。 如果关联值不是ClassLoader
的实例,则抛出IllegalArgumentException
。如果
environment
参数中不存在jmx.remote.protocol.provider.class.loader
键,则使用调用线程的上下文类加载器。如果加载此类的尝试产生一个
ClassNotFoundException
,搜索一个处理程序将继续列表的下一个元素。否则,发现与供应商的一个问题是由信号
JMXProviderException
,其cause
表示底层异常,如下所示:- 如果加载类的尝试产生除了
ClassNotFoundException
之外的异常,那就是原因 ; - 如果
Class.newInstance()
为该类产生异常,那就是原因 。
如果上述步骤没有提供者,包括没有提供程序包列表的默认情况,那么实现将使用自己的提供者
protocol
,否则将抛出一个MalformedURLException
。 实施可以选择通过其他方式查找提供商。 例如,它可以支持service providers ,其中服务接口是JMXConnectorProvider
。每个实现必须支持具有默认RMI传输的RMI连接器协议,用串号
rmi
指定。一旦找到提供商,
newJMXConnector
方法的结果就是在提供商上调用newJMXConnector
的结果。该
Map
传递给参数JMXConnectorProvider
是一个新的只读Map
包含所有均在条目environment
参数JMXConnectorFactory.newJMXConnector
,如果有一个。 另外,如果environment
参数中不存在jmx.remote.protocol.provider.class.loader
键,则将其添加到新的只读Map
。 关联的值是调用线程的上下文类加载器。- 从以下版本开始:
- 1.5
- 如果
-
-
Field Summary
Fields Modifier and Type Field 描述 static String
DEFAULT_CLASS_LOADER
指定默认类加载器的属性的名称。static String
PROTOCOL_PROVIDER_CLASS_LOADER
指定加载协议提供程序的类加载器的属性的名称。static String
PROTOCOL_PROVIDER_PACKAGES
指定在查找协议的处理程序时查询的提供程序包的属性的名称。
-
方法摘要
所有方法 静态方法 具体的方法 Modifier and Type 方法 描述 static JMXConnector
connect(JMXServiceURL serviceURL)
创建与给定地址的连接器服务器的连接。static JMXConnector
connect(JMXServiceURL serviceURL, Map<String,?> environment)
创建与给定地址的连接器服务器的连接。static JMXConnector
newJMXConnector(JMXServiceURL serviceURL, Map<String,?> environment)
在给定的地址创建连接器服务器的连接器客户端。
-
-
-
字段详细信息
-
DEFAULT_CLASS_LOADER
public static final String DEFAULT_CLASS_LOADER
指定默认类加载器的属性的名称。 此类加载器用于从远程
MBeanServerConnection
调用反序列化返回值和异常。 与此属性相关联的值是一个ClassLoader
的实例。- 另请参见:
- Constant Field Values
-
PROTOCOL_PROVIDER_PACKAGES
public static final String PROTOCOL_PROVIDER_PACKAGES
指定在查找协议的处理程序时查询的提供程序包的属性的名称。 与此属性相关联的值是一个包含名称由竖线分隔的字符串(
|
)。- 另请参见:
- Constant Field Values
-
PROTOCOL_PROVIDER_CLASS_LOADER
public static final String PROTOCOL_PROVIDER_CLASS_LOADER
指定加载协议提供程序的类加载器的属性的名称。 与此属性相关联的值是
ClassLoader
的一个实例。- 另请参见:
- Constant Field Values
-
-
方法详细信息
-
connect
public static JMXConnector connect(JMXServiceURL serviceURL) throws IOException
创建与给定地址的连接器服务器的连接。
这个方法相当于
connect(serviceURL, null)
。- 参数
-
serviceURL
- 要连接的连接器服务器的地址。 - 结果
-
一个
JMXConnector
的connect
方法已被调用。 - 异常
-
NullPointerException
- 如果serviceURL
为空。 -
IOException
- 如果连接器客户端或连接由于通信问题而无法建立。 -
SecurityException
- 如果连接不能出于安全考虑,
-
connect
public static JMXConnector connect(JMXServiceURL serviceURL, Map<String,?> environment) throws IOException
创建与给定地址的连接器服务器的连接。
此方法相当于:
JMXConnector conn = JMXConnectorFactory.newJMXConnector(serviceURL, environment); conn.connect(environment);
- 参数
-
serviceURL
- 要连接的连接器服务器的地址。 -
environment
- 一组用于确定连接如何进行的属性。 此参数可以为null。 此地图中的键必须是字符串。 每个关联值的适当类型取决于属性。environment
的内容不会被此呼叫更改。 - 结果
-
一个
JMXConnector
代表新建的连接。 每次成功调用此方法都会产生不同的对象。 - 异常
-
NullPointerException
- 如果serviceURL
为空。 -
IOException
- 如果连接器客户端或连接由于通信问题而无法进行。 -
SecurityException
- 如果连接不能出于安全考虑,
-
newJMXConnector
public static JMXConnector newJMXConnector(JMXServiceURL serviceURL, Map<String,?> environment) throws IOException
在给定的地址创建连接器服务器的连接器客户端。 结果客户端在其
connect
方法被调用之前不连接。- 参数
-
serviceURL
- 要连接的连接器服务器的地址。 -
environment
- 一组用于确定连接的属性。 此参数可以为null。 此地图中的键必须是字符串。 每个关联值的适当类型取决于属性。environment
的内容不会被此呼叫更改。 - 结果
-
一个代表新连接器客户端的
JMXConnector
。 每次成功调用此方法都会产生不同的对象。 - 异常
-
NullPointerException
- 如果serviceURL
为空。 -
IOException
- 如果由于通信问题导致连接器客户端无法创建。 -
MalformedURLException
-如果没有供应商在协议serviceURL
。 -
JMXProviderException
-如果在协议供应商serviceURL
,但它不能用于某些原因。
-
-