|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.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。