JavaTM 2 Platform
Standard Ed. 6

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 中出現的每個 +- 字元都分別由 ._ 替換。

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

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

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

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

pkg.protocol.ServerProvider

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

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

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

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

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

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

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

傳給 JMXConnectorServerProviderMap 參數為一個新的只讀 Map,它包含了原先傳給 JMXConnectorServerFactory.newJMXConnectorServerenvironment 參數中的所有條目(如果有)。此外,如果 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 中的協議有提供者,但提供者由於某種原因而無法使用。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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