java.lang.Objectjavax.management.remote.JMXConnectorFactory
public class JMXConnectorFactory
     
用于创建 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 
   
  如果传给 newJMXConnector 的 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 约定,其服务接口为 JMXConnectorProvider。
每个实现都必须支持由字符串 rmi 或 iiop 指定的 RMI 连接器协议。
一旦找到了提供者,newJMXConnector 方法的结果就是在该提供者上调用 newJMXConnector 的结果。
传给 JMXConnectorProvider 的 Map 参数为一个新的只读 Map,它包含了原先传给 JMXConnectorFactory.newJMXConnector 的 environment 参数中的所有条目(如果有)。此外,如果 environment 参数中没有 jmx.remote.protocol.provider.class.loader 关键字,则将此关键字添加到新的只读 Map 中。关联的值为调用线程的上下文类加载器。
| 字段摘要 | |
|---|---|
 static String |  
     DEFAULT_CLASS_LOADER 指定默认的类加载器的属性名称。  |  
    
 static String |  
     PROTOCOL_PROVIDER_CLASS_LOADER 指定用于加载协议提供者的类加载器的属性名称。  |  
    
 static String |  
     PROTOCOL_PROVIDER_PACKAGES 指定查找协议的处理程序时需参考的提供者包的属性名称。  |  
    
| 方法摘要 | |
|---|---|
 static JMXConnector |  
     connect(JMXServiceURL serviceURL) 创建到位于给定地址的连接器服务器的连接。  |  
    
 static JMXConnector |  
     connect(JMXServiceURL serviceURL, Map<String,?> environment) 创建到位于给定地址的连接器服务器的连接。  |  
    
 static JMXConnector |  
     newJMXConnector(JMXServiceURL serviceURL, Map<String,?> environment) 为位于给定地址的连接器服务器创建一个连接器客户端。  |  
    
| 从类 java.lang.Object 继承的方法 | 
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |  
    
| 字段详细信息 | 
|---|
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 - 要连接到的连接器服务器的地址。 
     connect 方法的 
      JMXConnector。 
     NullPointerException - 如果 
      serviceURL 为 null。 
     IOException - 如果由于通信问题造成无法建立连接器客户端或连接。 
     SecurityException - 如果由于安全原因而无法建立连接。
     public static JMXConnector connect(JMXServiceURL serviceURL, Map<String,?> environment) throws IOException
创建到位于给定地址的连接器服务器的连接。
此方法等效于:
 JMXConnector conn = JMXConnectorFactory.newJMXConnector(serviceURL,
                                                         environment);
 conn.connect(environment);
  
    
serviceURL - 要连接到的连接器服务器的地址。
     environment - 用于确定如何建立连接的一组属性。此参数可以为 null。此映射中关键字必须为字符串。每个关联值的适当类型取决于属性。此调用不改变 
      environment 的内容。 
     JMXConnector。每次对此方法的成功调用都生成不同的对象。 
     NullPointerException - 如果 
      serviceURL 为 null。 
     IOException - 如果由于通信问题造成无法建立连接器客户端或连接。 
     SecurityException - 如果由于安全原因而无法建立连接。
     public static JMXConnector newJMXConnector(JMXServiceURL serviceURL, Map<String,?> environment) throws IOException
为位于给定地址的连接器服务器创建一个连接器客户端。结果客户端直到调用其 connect 方法时才连接。
serviceURL - 要连接到的连接器服务器的地址。
     environment - 用于确定如何建立连接的一组属性。此参数可以为 null。此映射中关键字必须为字符串。每个关联值的适当类型取决于属性。此调用不改变 
      environment 的内容。 
     JMXConnector。每次对此方法的成功调用都生成不同的对象。 
     NullPointerException - 如果 
      serviceURL 为 null。 
     IOException - 如果由于通信问题而导致无法建立连接器客户端。 
     MalformedURLException - 如果 
      serviceURL 中的协议无提供者。 
     JMXProviderException - 如果 
      serviceURL 中的协议有提供者,但提供者由于某种原因而无法使用。