public class JMXConnectorServerFactory extends Object
工厂创建JMX API接口服务器。没有这个类的实例。
每个连接器服务器是由JMXConnectorServerProvider实例创建。此实例被发现如下。假设给定的JMXServiceURL看起来像"service:jmx:protocol:remainder"。该工厂将试图找到合适的JMXConnectorServerProvider protocol。在protocol字符的+或-每个发生是由.或_取代,分别。
搜索提供程序包列表如下:
newJMXConnectorServer的environment参数包含的关键jmx.remote.protocol.provider.pkgs那么相关的价值是提供程序包清单。jmx.remote.protocol.provider.pkgs存在,那么它的价值是提供程序包清单。提供程序包列表是一个字符串,被解释为一个列表非空的java包的名字由竖线隔开(|)。如果字符串是空的,那么提供者包列表也是空的。如果提供程序包清单不是一个字符串,或者如果它包含一个元素是一个空字符串,一个JMXProviderException抛出。
如果提供程序包清单的存在并不是空的,然后对列表中的每个元素pkg,工厂将尝试加载类
pkg.protocol.ServerProvider
如果environment参数newJMXConnectorServer包含的关键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,那里的服务接口是JMXConnectorServerProvider。
每一个实施必须与默认的RMI传输支持RMI连接器的协议,rmi指定字符串。一个实现可以选择用RMI/IIOP运输支持RMI连接器的协议,与iiop指定字符串。
一旦供应商被发现,该newJMXConnectorServer方法的结果是对供应商的要求newJMXConnectorServer结果。
通过对JMXConnectorServerProvider的Map参数是一个新的只读Map包含所有的项目都在JMXConnectorServerFactory.newJMXConnectorServer的environment参数,如果有一个。此外,如果jmx.remote.protocol.provider.class.loader关键不在environment参数,它被添加到新的只读Map。关联的值是调用线程的上下文类加载程序。
| Modifier and Type | Field and Description |
|---|---|
static String |
DEFAULT_CLASS_LOADER
指定默认类加载程序的属性的名称。
|
static String |
DEFAULT_CLASS_LOADER_NAME
该属性指定默认的类加载器MBean的名字。
|
static String |
PROTOCOL_PROVIDER_CLASS_LOADER
指定加载协议提供程序的类加载程序的属性的名称。
|
static String |
PROTOCOL_PROVIDER_PACKAGES
指定在寻找协议处理程序时协商的提供程序包的属性的名称。
|
| Modifier and Type | Method and Description |
|---|---|
static JMXConnectorServer |
newJMXConnectorServer(JMXServiceURL serviceURL, Map<String,?> environment, MBeanServer mbeanServer)
在给定的地址创建一个连接器服务器。
|
public static final String DEFAULT_CLASS_LOADER
指定默认类加载程序的属性的名称。这类装载器用于反序列化对象从客户端接收请求,可能在咨询MBean特定的类加载器。这个属性关联的值是ClassLoader实例。
public static final String DEFAULT_CLASS_LOADER_NAME
该属性指定默认的类加载器MBean的名字。这类装载器用于反序列化对象从客户端接收请求,可能在咨询MBean特定的类加载器。这个属性关联的值是ObjectName实例。
public static final String PROTOCOL_PROVIDER_PACKAGES
指定在寻找协议处理程序时协商的提供程序包的属性的名称。这个属性关联的值是一个包的名字由竖线分隔的字符串(|)。
public static final String PROTOCOL_PROVIDER_CLASS_LOADER
指定加载协议提供程序的类加载程序的属性的名称。这个属性关联的值是ClassLoader实例。
public static JMXConnectorServer newJMXConnectorServer(JMXServiceURL serviceURL, Map<String,?> environment, MBeanServer mbeanServer) throws IOException
在给定的地址创建一个连接器服务器。由此产生的服务器,直到它的start方法叫做开始。
serviceURL -新的连接服务器的地址。新的连接器服务器的实际地址,由
getAddress方法返回,也不一定完全相同。例如,它可能包括一个端口号,如果原始地址没有。
environment -一组属性来控制新的连接器服务器的行为。此参数可以为空。在这个Map上的键必须是字符串。每个相关联的值的适当类型取决于属性。
environment的内容不是由这个电话改变了。
mbeanServer -这种连接器服务器连接到MBean服务器。空如果连接器服务器将被登记在它附在一个MBean服务器。
JMXConnectorServer代表新连接器服务器。每个成功调用该方法产生一个不同的对象。
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.