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.