JavaTM 2 Platform
Standard Ed. 6

javax.management.remote
類別 JMXConnectorFactory

java.lang.Object
  繼承者 javax.management.remote.JMXConnectorFactory

public class JMXConnectorFactory
extends Object

用於創建 JMX API 連接器客戶端的處理器。此類別沒有實例。

通常使用此類別的 connect 方法建立連接。更高層級的應用程序可使用 newJMXConnector 分離連接器客戶端的創建,使用 JMXConnector.connect(Map) 建立自身的連接。

每個客戶端都是由 JMXConnectorProvider 的實例創建的。此實例按如下方式建立。假設給定的 JMXServiceURL 類似於 "service:jmx:protocol:remainder"。則處理器將嘗試尋找適當的 JMXConnectorProvider 以供 protocol 使用。protocol 中出現的每個 +- 字元都分別由 ._ 替換。

提供者包列表 的搜尋如下所示:

  1. 如果傳給 newJMXConnectorenvironment 參數包含關鍵字 jmx.remote.protocol.provider.pkgs,則關聯的值為提供者包列表。
  2. 否則,如果存在系統屬性 jmx.remote.protocol.provider.pkgs,則其值為提供者包列表。
  3. 否則,沒有任何提供者包列表。

提供者包列表是一個表現為由豎直線 (|) 分隔的非空(null) Java 套件名稱列表的字元串。如果該字元串為空,則提供者包列表也為空。如果提供者包列表不是一個字元串,或者如果它包含空字元串元素,則拋出 JMXProviderException 異常。

如果存在提供者包列表並且不為空,則對於列表中的每個 pkg 元素,此處理器將嘗試載入以下類別

pkg.protocol.ClientProvider

如果傳給 newJMXConnectorenvironment 參數包含關鍵字 jmx.remote.protocol.provider.class.loader,則關聯的值為用於載入提供者的類別載入器。如果關聯的值不是一個 ClassLoader 的實例,則拋出 IllegalArgumentException

如果 environment 參數中沒有 jmx.remote.protocol.provider.class.loader 關鍵字,則使用調用執行緒的上下文類別載入器。

如果嘗試載入該類別時產生 ClassNotFoundException,則繼續對列表中的下一個元素搜尋處理程序。

否則,提供者尋找的問題將由 JMXProviderException 通過其 cause 指示如下所示的基礎異常來通知:

如果上述步驟中未找到任何提供者,包括無提供者包列表的預設情況,則實作將使用 protocol 自身的提供者,或者如果也沒有自身的提供者,則拋出 MalformedURLException。實作也可以選擇通過其他途徑尋找提供者。例如,它可能支持服務提供者的 JAR 約定,其服務介面為 JMXConnectorProvider

每個實作都必須支持由字元串 rmiiiop 指定的 RMI 連接器協議。

一旦找到了提供者,newJMXConnector 方法的結果就是在該提供者上調用 newJMXConnector 的結果。

傳給 JMXConnectorProviderMap 參數為一個新的只讀 Map,它包含了原先傳給 JMXConnectorFactory.newJMXConnectorenvironment 參數中的所有條目(如果有)。此外,如果 environment 參數中沒有 jmx.remote.protocol.provider.class.loader 關鍵字,則將此關鍵字添加到新的只讀 Map 中。關聯的值為調用執行緒的上下文類別載入器。

從以下版本開始:
1.5

欄位摘要
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
 

欄位詳細資訊

DEFAULT_CLASS_LOADER

public static final String DEFAULT_CLASS_LOADER

指定預設的類別載入器的屬性名稱。該類別載入器用於反序列化來自遠端 MBeanServerConnection 調用的返回值及異常。與此屬性關聯的值為 ClassLoader 的實例。

另請參見:
常數欄位值

PROTOCOL_PROVIDER_PACKAGES

public static final String PROTOCOL_PROVIDER_PACKAGES

指定尋找協議的處理程序時需參考的提供者套件的屬性名稱。與此屬性關聯的值為由豎直線 (|) 分隔的套件名稱的字元串。

另請參見:
常數欄位值

PROTOCOL_PROVIDER_CLASS_LOADER

public static final String PROTOCOL_PROVIDER_CLASS_LOADER

指定用於載入協議提供者的類別載入器的屬性名稱。與此屬性關聯的值為 ClassLoader 的實例。

另請參見:
常數欄位值
方法詳細資訊

connect

public static JMXConnector connect(JMXServiceURL serviceURL)
                            throws IOException

創建到位於給定位址的連接器伺服器的連接。

此方法等效於 connect(serviceURL, null)

參數:
serviceURL - 要連接到的連接器伺服器的位址。
返回:
調用過其 connect 方法的 JMXConnector
拋出:
NullPointerException - 如果 serviceURL 為 null。
IOException - 如果由於通信問題造成無法建立連接器客戶端或連接。
SecurityException - 如果由於安全原因而無法建立連接。

connect

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 - 如果由於安全原因而無法建立連接。

newJMXConnector

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 中的協議有提供者,但提供者由於某種原因而無法使用。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only