|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjavax.management.MBeanServerFactory
public class MBeanServerFactory
提供 MBean 伺服器參考。沒有此類別的實例。
從 JMX 1.2 開始,此類別使替換預設的 MBeanServer 實作成為可能。使用 MBeanServerBuilder 類別實作此替換。可通過 javax.management.builder.initial 系統屬性指定要實例化的初始 MBeanServerBuilder 的類別。指定的類別必須是 MBeanServerBuilder 的公共子類別,並且必須具有公共的空建構子。
預設情況下,如果未指定該屬性的值,則創建一個 javax.management.MBeanServerBuilder 的實例。否則,MBeanServerFactory 會試圖使用 Thread.currentThread().getContextClassLoader() 載入指定的類別,如果該屬性值為 null,則使用 Class.forName() 載入指定的類別。然後它使用 Class.newInstance() 創建該 Class 的初始實例。如果在此過程中(例如 ClassNotFoundException、InstantiationException)引發已檢查異常,則該 MBeanServerFactory 將從 RuntimeException 內傳播此異常。
每次需要創建新的 MBeanServer 時都會查詢 javax.management.builder.initial 系統屬性,並載入該屬性所指向的類別。如果該類別與當前的 MBeanServerBuilder 的類別不同,則創建一個新的 MBeanServerBuilder。否則,MBeanServerFactory 可能創建一個新的 MBeanServerBuilder 或重用當前的 MBeanServerBuilder。
如果無法載入該屬性所指向的類別,或者該屬性所指向的類別不對應於有效的 MBeanServerBuilder 子類別,則拋出一個異常,並且在將 javax.management.builder.initial 系統屬性重置為有效值之前,不能創建任何 MBeanServer。
出於某種目的,例如添加一個額外的安全層,MBeanServerBuilder 使得包裹預設 MBeanServerBuilder 實作所返回的 MBeanServer 成為可能。
| 方法摘要 | |
|---|---|
static MBeanServer |
createMBeanServer()
返回一個新物件,該物件使用標準的預設域名來實作 MBeanServer 介面。 |
static MBeanServer |
createMBeanServer(String domain)
返回一個新物件,該物件使用指定的預設域名來實作 MBeanServer 介面。 |
static ArrayList<MBeanServer> |
findMBeanServer(String agentId)
返回已註冊 MBeanServer 物件的列表。 |
static ClassLoaderRepository |
getClassLoaderRepository(MBeanServer server)
返回給定 MBeanServer 使用的 ClassLoaderRepository。 |
static MBeanServer |
newMBeanServer()
返回一個新物件,該物件使用標準的預設域名來實作 MBeanServer 介面,不保持對此新物件的內部參考。 |
static MBeanServer |
newMBeanServer(String domain)
返回一個新物件,該物件使用指定的預設域名來實作 MBeanServer 介面,不保持對此新物件的內部參考。 |
static void |
releaseMBeanServer(MBeanServer mbeanServer)
移除對已創建 MBeanServer 的內部 MBeanServerFactory 參考。 |
| 從類別 java.lang.Object 繼承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 方法詳細資訊 |
|---|
public static void releaseMBeanServer(MBeanServer mbeanServer)
mbeanServer - 要移除的 MBeanServer 物件。
IllegalArgumentException - 如果未通過某個 createMBeanServer 方法產生 mbeanServer,或者如果已在該 mbeanServer 上調用 releaseMBeanServer。
SecurityException - 如果有 SecurityManager 且調用者的權限不包括或隱含 MBeanServerPermission("releaseMBeanServer")。public static MBeanServer createMBeanServer()
返回一個新物件,該物件使用標準的預設域名來實作 MBeanServer 介面。如果使用者指定的域為 null,則將預設域名用作 MBean 的 ObjectName 的域部分。
標準的預設域名是 DefaultDomain。
內部保存該 MBeanServer 參考。這就允許 findMBeanServer 返回對此 MBeanServer 物件的參考。
此方法等效於 createMBeanServer(null)。
SecurityException - 如果有 SecurityManager 且調用者的權限不包括或隱含 MBeanServerPermission("createMBeanServer")。
JMRuntimeException - 如果屬性 javax.management.builder.initial 存在,但是無法通過公共的無參數建構子實例化它所指定的類別;如果已實例化的產生器從其 newMBeanServerDelegate 或 newMBeanServer 方法中返回 null。
ClassCastException - 如果屬性 javax.management.builder.initial 存在並且可以被實例化,但是它的分派與 MBeanServerBuilder 不相容。public static MBeanServer createMBeanServer(String domain)
返回一個新物件,該物件使用指定的預設域名來實作 MBeanServer 介面。如果使用者指定的域為 null,則將給定的域名用作 MBean 的 ObjectName 的域部分。
內部保存該 MBeanServer 參考。這就允許 findMBeanServer 返回對此 MBeanServer 物件的參考。
domain - 所創建的 MBeanServer 的預設域名。這是 MBeanServer.getDefaultDomain() 所返回的值。
SecurityException - 如果有 SecurityManager 且調用者的權限不包括或隱含 MBeanServerPermission("createMBeanServer")。
JMRuntimeException - 如果屬性 javax.management.builder.initial 存在,但是無法通過公共的無參數建構子實例化它所指定的類別;如果已實例化的產生器從其 newMBeanServerDelegate 或 newMBeanServer 方法中返回 null。
ClassCastException - 如果屬性 javax.management.builder.initial 存在並且可以被實例化,但是它的分派與 MBeanServerBuilder 不相容。public static MBeanServer newMBeanServer()
返回一個新物件,該物件使用標準的預設域名來實作 MBeanServer 介面,不保持對此新物件的內部參考。如果使用者指定的域為 null,則將預設域名用作 MBean 的 ObjectName 的域部分。
標準的預設域名是 DefaultDomain。
不保存參考。findMBeanServer 無法返回對此 MBeanServer 物件的參考,但是沒有對該 MBeanServer 的參考時,垃圾回收器能夠移除該 MBeanServer 物件。
此方法等效於 newMBeanServer(null)。
SecurityException - 如果有 SecurityManager 且調用者的權限不包括或隱含 MBeanServerPermission("newMBeanServer")。
JMRuntimeException - 如果屬性 javax.management.builder.initial 存在,但是無法通過公共的無參數建構子實例化它所指定的類別;如果已實例化的產生器從其 newMBeanServerDelegate 或 newMBeanServer 方法中返回 null。
ClassCastException - 如果屬性 javax.management.builder.initial 存在並且可以被實例化,但是它的分派與 MBeanServerBuilder 不相容。public static MBeanServer newMBeanServer(String domain)
返回一個新物件,該物件使用指定的預設域名來實作 MBeanServer 介面,不保持對此新物件的內部參考。如果使用者指定的域為 null,則將給定的域名用作 MBean 的 ObjectName 的域部分。
不保存參考。findMBeanServer 無法返回對此 MBeanServer 物件的參考,但是沒有對該 MBeanServer 的參考時,垃圾回收器能夠移除該 MBeanServer 物件。
domain - 所創建的 MBeanServer 的預設域名。這是 MBeanServer.getDefaultDomain() 將要返回的值。
SecurityException - 如果有 SecurityManager 且調用者的權限不包括或隱含 MBeanServerPermission("newMBeanServer")。
JMRuntimeException - 如果屬性 javax.management.builder.initial 存在,但是無法通過公共的無參數建構子實例化它所指定的類別;如果已實例化的產生器從其 newMBeanServerDelegate 或 newMBeanServer 方法中返回 null。
ClassCastException - 如果屬性 javax.management.builder.initial 存在並且可以被實例化,但是它的分派與 MBeanServerBuilder 不相容。public static ArrayList<MBeanServer> findMBeanServer(String agentId)
返回已註冊 MBeanServer 物件的列表。已註冊的 MBeanServer 物件是通過某個 createMBeanServer 方法創建並且隨後未使用 releaseMBeanServer 釋放的 MBeanServer。
agentId - 要檢索的 MBeanServer 的代理標識符。如果此參數為 null,則返回此 JVM 中的所有已註冊 MBeanServer。否則只返回其 id 等於 agentId 的 MBeanServer。MBeanServer 的 id 是其委託 MBean 的 MBeanServerId 屬性。
SecurityException - 如果有 SecurityManager 且調用者的權限不包括或隱含 MBeanServerPermission("findMBeanServer")。public static ClassLoaderRepository getClassLoaderRepository(MBeanServer server)
server.getClassLoaderRepository()。
server - 要檢查的 MBeanServer。從 JMX 1.2 開始,如果 server 為 null,則結果是 NullPointerException。此行為與 JMX 1.1 中相應實作的行為不同 - 已不再使用 null 值。
SecurityException - 如果有 SecurityManager 且調用者的權限不包括或隱含 MBeanPermission("getClassLoaderRepository")。
NullPointerException - 如果 server 為 null。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。