public class JMXConnectorFactory extends Object
工厂创建JMX API接口的客户。没有这个类的实例。
连接通常使用这个类的connect法。更先进的应用程序可以单独的客户端连接器的创建,使用newJMXConnector和连接建立的本身,用JMXConnector.connect(Map)。
每个客户的JMXConnectorProvider实例创建。此实例被发现如下。假设给定的JMXServiceURL看起来像"service:jmx:protocol:remainder"。那时工厂将试图找到合适的JMXConnectorProvider protocol。在protocol字符的+或-每个发生是由.或_取代,分别。
搜索提供程序包列表如下:
newJMXConnector的environment参数包含的关键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抛出。
如果jmx.remote.protocol.provider.class.loader关键不在environment参数,调用线程的上下文类加载器使用。
如果尝试加载这个类产生ClassNotFoundException,对处理程序的搜索仍在继续,下一个元素的列表。
否则,一个问题与供应商发现是由一个JMXProviderException的cause表明潜在的异常信号,如下:
ClassNotFoundException例外,这就是原因;Class.newInstance()产生一个例外,那是因为。如果没有供应商是通过以上步骤,包括默认情况下是没有提供包的列表,然后执行将使用自己的供应商protocol,否则如果没有把MalformedURLException。一个实现可以选择通过其他方式找到供应商。例如,它可以支持 JAR conventions for service providers,那里的服务接口是JMXConnectorProvider。
每一个实施必须与默认的RMI传输支持RMI连接器的协议,rmi指定字符串。一个实现可以选择用RMI/IIOP运输支持RMI连接器的协议,与iiop指定字符串。
一旦供应商被发现,该newJMXConnector方法的结果是对供应商的要求newJMXConnector结果。
通过对JMXConnectorProvider的Map参数是一个新的只读Map包含所有的项目都在environment参数JMXConnectorFactory.newJMXConnector,如果有一个。此外,如果jmx.remote.protocol.provider.class.loader关键不在environment参数,它被添加到新的只读Map。关联的值是调用线程的上下文类加载程序。
| Modifier and Type | Field and Description |
|---|---|
static String |
DEFAULT_CLASS_LOADER
指定默认类加载程序的属性的名称。
|
static String |
PROTOCOL_PROVIDER_CLASS_LOADER
指定加载协议提供程序的类加载程序的属性的名称。
|
static String |
PROTOCOL_PROVIDER_PACKAGES
指定在寻找协议处理程序时协商的提供程序包的属性的名称。
|
| Modifier and Type | Method and Description |
|---|---|
static JMXConnector |
connect(JMXServiceURL serviceURL)
在给定的地址创建一个连接到连接器服务器。
|
static JMXConnector |
connect(JMXServiceURL serviceURL, Map<String,?> environment)
在给定的地址创建一个连接到连接器服务器。
|
static JMXConnector |
newJMXConnector(JMXServiceURL serviceURL, Map<String,?> environment)
在给定的地址中创建连接器服务器的连接器客户端。
|
public static final String DEFAULT_CLASS_LOADER
指定默认类加载程序的属性的名称。这类装载器是用来将返回值和远程调用MBeanServerConnection例外。这个属性关联的值是ClassLoader实例。
public static final String PROTOCOL_PROVIDER_PACKAGES
指定在寻找协议处理程序时协商的提供程序包的属性的名称。这个属性关联的值是一个包的名字由竖线分隔的字符串(|)。
public static final String PROTOCOL_PROVIDER_CLASS_LOADER
指定加载协议提供程序的类加载程序的属性的名称。这个属性关联的值是ClassLoader实例。
public static JMXConnector connect(JMXServiceURL serviceURL) throws IOException
在给定的地址创建一个连接到连接器服务器。
这种方法相当于connect(serviceURL, null)。
serviceURL -连接到连接器的服务器地址。
JMXConnector的
connect方法被调用。
NullPointerException -如果
serviceURL是空的。
IOException如果客户端连接器或连接不能因为沟通问题。
SecurityException -如果连接不安全的原因。
public static JMXConnector connect(JMXServiceURL serviceURL, Map<String,?> environment) throws IOException
在给定的地址创建一个连接到连接器服务器。
此方法相当于:
jmxconnector conn = jmxconnectorfactory newjmxconnector(serviceurl,环境);conn.connect(环境);
serviceURL -连接到连接器的服务器地址。
environment -一组属性来确定如何进行连接。此参数可以为空。在这个Map上的键必须是字符串。每个相关联的值的适当类型取决于属性。
environment的内容不是由这个电话改变了。
JMXConnector代表新的连接。每个成功调用该方法产生一个不同的对象。
NullPointerException -如果
serviceURL是空的。
IOException如果客户端连接器或连接不能因为沟通问题。
SecurityException -如果连接不安全的原因。
public static JMXConnector newJMXConnector(JMXServiceURL serviceURL, Map<String,?> environment) throws IOException
在给定的地址中创建连接器服务器的连接器客户端。生成的客户端没有连接到它的connect方法称为。
serviceURL -连接到连接器的服务器地址。
environment -一组属性来确定如何进行连接。此参数可以为空。在这个Map上的键必须是字符串。每个相关联的值的适当类型取决于属性。
environment的内容不是由这个电话改变了。
JMXConnector代表新客户端连接器。每个成功调用该方法产生一个不同的对象。
NullPointerException -如果
serviceURL是空的。
IOException如果客户端连接器不能因为沟通问题。
MalformedURLException -如果没有供应商在
serviceURL协议。
JMXProviderException -如果有一个在
serviceURL协议供应商,但它不能用于某些原因。
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.