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.