|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.management.remote
类 JMXConnectorServerFactory
java.lang.Object javax.management.remote.JMXConnectorServerFactory
-
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
如果传给 newJMXConnectorServer
的 environment
参数包含关键字 jmx.remote.protocol.provider.class.loader
,则关联的值为用于加载提供程序的类加载器。如果关联的值不是一个 ClassLoader
的实例,则抛出 IllegalArgumentException
。
如果 environment
参数中没有 jmx.remote.protocol.provider.class.loader
关键字,则使用调用线程的上下文类加载器。
如果尝试加载该类时生成 ClassNotFoundException
,则继续对列表中的下一个元素搜索处理程序。
否则,提供程序查找的问题将由 JMXProviderException
通过其 cause
指示如下所示的基础异常来通知:
- 如果尝试加载类时生成了一个
ClassNotFoundException
之外的异常,则它就是 cause; - 如果该类的
Class.newInstance()
生成了异常,则这就是 cause。
如果上述步骤中未找到任何提供程序,包括无提供程序包列表的默认情况,则实现将使用 protocol
自身的提供程序,或者如果也没有自身的提供程序,则抛出一个 MalformedURLException
。实现也可以选择通过其他途径查找提供程序。例如,它可能支持 JAR conventions for service providers,其服务接口为 JMXConnectorServerProvider
。
每个实现都必须支持由字符串 rmi
或 iiop
指定的 RMI 连接器协议。
一旦找到了提供程序,newJMXConnectorServer
方法的结果就是在该提供程序上调用 newJMXConnectorServer
的结果。
传给 JMXConnectorServerProvider
的 Map
参数为一个新的只读 Map
,它包含了原先传给 JMXConnectorServerFactory.newJMXConnectorServer
的 environment
参数中的所有条目(如果有)。此外,如果 environment
参数中没有 jmx.remote.protocol.provider.class.loader
关键字,则将此关键字添加到新的只读 Map
中。关联的值为调用线程的上下文类加载器。
- 从以下版本开始:
- 1.5
字段摘要 | |
---|---|
static String |
DEFAULT_CLASS_LOADER 指定默认的类加载器的属性名称。 |
static String |
DEFAULT_CLASS_LOADER_NAME 指定默认的类加载器 MBean 名称的属性名称。 |
static String |
PROTOCOL_PROVIDER_CLASS_LOADER 指定用于加载协议提供程序的类加载器的属性名称。 |
static String |
PROTOCOL_PROVIDER_PACKAGES 指定查找协议的处理程序时需参考的提供程序包的属性名称。 |
方法摘要 | |
---|---|
static JMXConnectorServer |
newJMXConnectorServer(JMXServiceURL serviceURL, Map<String,?> environment, MBeanServer mbeanServer) 创建位于给定地址的连接器服务器。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
DEFAULT_CLASS_LOADER
public static final String DEFAULT_CLASS_LOADER
-
指定默认的类加载器的属性名称。此类加载器用于反序列化从客户端收到请求对象(之前可能参考了一个特定于 MBean 的类加载器)。与此属性关联的值为
ClassLoader
的实例。- 另请参见:
- 常量字段值
DEFAULT_CLASS_LOADER_NAME
public static final String DEFAULT_CLASS_LOADER_NAME
-
指定默认的类加载器 MBean 名称的属性名称。此类加载器用于反序列化从客户端收到请求对象(之前可能参考了一个特定于 MBean 的类加载器)。与此属性关联的值为
ObjectName
的实例。- 另请参见:
- 常量字段值
PROTOCOL_PROVIDER_PACKAGES
public static final String PROTOCOL_PROVIDER_PACKAGES
-
指定查找协议的处理程序时需参考的提供程序包的属性名称。与此属性关联的值为由竖直线 (
|
) 分隔的包名称的字符串。- 另请参见:
- 常量字段值
PROTOCOL_PROVIDER_CLASS_LOADER
public static final String PROTOCOL_PROVIDER_CLASS_LOADER
-
指定用于加载协议提供程序的类加载器的属性名称。与此属性关联的值为
ClassLoader
的实例。- 另请参见:
- 常量字段值
方法详细信息 |
---|
newJMXConnectorServer
public static JMXConnectorServer newJMXConnectorServer(JMXServiceURL serviceURL, Map<String,?> environment, MBeanServer mbeanServer) throws IOException
-
创建位于给定地址的连接器服务器。结果服务器直到调用其
start
方法时才启动。 -
- 参数:
-
serviceURL
- 新的连接器服务器的地址。新的连接器服务器的getAddress
方法返回的连接器服务器的实际地址不一定完全相同。例如,它可能包含一个端口号,而原始地址中并没有该端口号。 -
environment
- 用于控制新连接器服务器的行为的一组属性。此参数可以为 null。此映射中关键字必须为字符串。每个关联值的适当类型取决于属性。此调用不改变environment
的内容。 -
mbeanServer
- 该连接器服务器连接到的 MBean 服务器。如果该连接器服务器将通过注册的方式连接到 MBean 服务器,则为 Null。 - 返回:
-
代表新的连接器服务器的
JMXConnectorServer
。每次对此方法的成功调用都生成不同的对象。 - 抛出:
-
NullPointerException
- 如果serviceURL
为 null。 -
IOException
- 如果由于存在通信问题而导致无法建立连接器服务器。 -
MalformedURLException
- 如果serviceURL
中的协议无提供程序。 -
JMXProviderException
- 如果serviceURL
中的协议有提供程序,但提供程序由于某种原因而无法使用。
所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |