|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface MBeanServer
這是在代理端進行 MBean 操作的介面。它包含創建、註冊和刪除 MBean 所需的方法,以及用於已註冊 MBean 的存取方法。這是 JMX 基礎設施的核心元件。
使用者程式碼通常不實作此介面。相反,應該使用 MBeanServerFactory
類別中的某個方法獲得實作此介面的物件。
添加到 MBean 伺服器中的所有 MBean 都會變成得可以管理:通過連接到該 MBeanServer 的連接器/適配器可以遠端存取其屬性和操作。Java 物件不能在 MBean 伺服器中進行註冊,除非它是相容 JMX 的 MBean。
在 MBean 伺服器中註冊或註銷 MBean 時,會發出一個 MBeanServerNotification
Notification。要將一個物件註冊為 MBeanServerNotifications 的偵聽器,則應該使用 MBeanServerDelegate
的 ObjectName
作為 ObjectName
參數調用 MBean 伺服器方法 addNotificationListener
。此 ObjectName
是:JMImplementation:type=MBeanServerDelegate
。
從 MBeanServerFactory
類別的 createMBeanServer
或 newMBeanServer
方法所獲得的物件會對其方法進行安全檢查,如下所示:
首先,如果沒有安全管理器(System.getSecurityManager()
為 null),則此介面的實作可以不進行任何檢查。
假定存在安全管理器,或者實作選擇進行檢查,則按照以下內容進行檢查;className
是目標 MBean 的 MBeanInfo.getClassName()
所返回的字元串。
如果安全檢查失敗,則該方法將拋出 SecurityException
。
對於可拋出 InstanceNotFoundException
的方法,它會為不存在的 MBean 拋出此異常,而不管權限如何。這是因為不存在的 MBean 沒有 className
。
對於 invoke
方法,調用者的權限必須隱含 MBeanPermission(className, operationName, name, "invoke")
。
對於 getAttribute
方法,調用者的權限必須隱含 MBeanPermission(className, attribute, name, "getAttribute")
。
對於 getAttributes
方法,調用者的權限必須隱含 MBeanPermission(className, null, name, "getAttribute")
。另外,對於 AttributeList
中的每個屬性 a,如果調用者的權限沒有隱含 MBeanPermission(className, a, name, "getAttribute")
,則 MBean 伺服器的行為與所提供列表中不包含該屬性時一樣。
對於 setAttribute
方法,調用者的權限必須隱含 MBeanPermission(className, attrName, name, "setAttribute")
,其中 attrName
是 attribute.getName()
。
對於 setAttributes
方法,調用者的權限必須隱含 MBeanPermission(className, null, name, "setAttribute")
。另外,對於 AttributeList
中的每個屬性 a,如果調用者的權限並沒有隱含 MBeanPermission(className, a, name, "setAttribute")
,則 MBean 伺服器的行為與所提供列表中不包含該屬性時一樣。
對於 addNotificationListener
方法,調用者的權限必須隱含 MBeanPermission(className, null, name, "addNotificationListener")
。
對於 removeNotificationListener
方法,調用者的權限必須隱含 MBeanPermission(className, null, name, "removeNotificationListener")
。
對於 getMBeanInfo
方法,調用者的權限必須隱含 MBeanPermission(className, null, name, "getMBeanInfo")
。
對於 getObjectInstance
方法,調用者的權限必須隱含 MBeanPermission(className, null, name, "getObjectInstance")
。
對於 isInstanceOf
方法,調用者的權限必須隱含 MBeanPermission(className, null, name, "isInstanceOf")
。
對於 queryMBeans
方法,調用者的權限必須隱含 MBeanPermission(null, null, name, "queryMBeans")
。另外,對於與 name
比對的每個 MBean,如果調用者的權限沒有隱含 MBeanPermission(className, null, name, "queryMBeans")
,則 MBean 伺服器的行為與該 MBean 不存在時一樣。
某些查詢元素在 MBean 伺服器上執行操作。如果調用者不具有針對給定 MBean 的所需權限,則查詢結果中不包括該 MBean。受此影響的標準查詢元素是 Query.attr(String)
、Query.attr(String,String)
和 Query.classattr()
。
對於 queryNames
方法,執行的檢查與 queryMBeans
方法相同,除了在 MBeanPermission
物件中使用 "queryNames"
而不是 "queryMBeans"
。注意,"queryMBeans"
權限隱含相應的 "queryNames"
權限。
對於 getDomains
方法,調用者的權限必須隱含 MBeanPermission(null, null, name, "getDomains")
。另外,對於返回陣列中的每個域 d,如果調用者的權限沒有隱含 MBeanPermission(null, null, new ObjectName("d:x=x"), "getDomains")
,則從陣列中消除該域。其中 x=x
是任意鍵=值 對,需要滿足 ObjectName 的建構子的要求,但與其他內容無關。
對於 getClassLoader
方法,調用者的權限必須隱含 MBeanPermission(className, null, loaderName, "getClassLoader")
。
對於 getClassLoaderFor
方法,調用者的權限必須隱含 MBeanPermission(className, null, mbeanName, "getClassLoaderFor")
。
對於 getClassLoaderRepository
方法,調用者的權限必須隱含 MBeanPermission(null, null, null, "getClassLoaderRepository")
。
對於已過時的 deserialize
方法,所需的權限與替換它們的方法的權限相同。
對於 instantiate
方法,調用者的權限必須隱含 MBeanPermission(className, null, null, "instantiate")
。
對於 registerMBean
方法,調用者的權限必須隱含 MBeanPermission(className, null, name, "registerMBean")
。其中 className
是 MBeanInfo.getClassName()
為此類別某個物件返回的字元串。
如果 MBeanPermission
檢查成功,則驗證該 MBean 的類別,方法是檢查其 ProtectionDomain
是否隱含 MBeanTrustPermission("register")
。
最後,如果 name
參數為 null,則使用 MBeanRegistration.preRegister
返回的 ObjectName
進行另一次 MBeanPermission
檢查。
對於 createMBean
方法,調用者的權限必須隱含等效的 instantiate
,後跟 registerMBean
所需的權限。
對於 unregisterMBean
方法,調用者的權限必須隱含 MBeanPermission(className, null, name, "unregisterMBean")
。
方法摘要 | |
---|---|
void |
addNotificationListener(ObjectName name,
NotificationListener listener,
NotificationFilter filter,
Object handback)
向已註冊的 MBean 添加一個偵聽器。 |
void |
addNotificationListener(ObjectName name,
ObjectName listener,
NotificationFilter filter,
Object handback)
向已註冊的 MBean 添加一個偵聽器。 |
ObjectInstance |
createMBean(String className,
ObjectName name)
在 MBean 伺服器中實例化並註冊一個 MBean。 |
ObjectInstance |
createMBean(String className,
ObjectName name,
Object[] params,
String[] signature)
在 MBean 伺服器中實例化並註冊一個 MBean。 |
ObjectInstance |
createMBean(String className,
ObjectName name,
ObjectName loaderName)
在 MBean 伺服器中實例化並註冊一個 MBean。 |
ObjectInstance |
createMBean(String className,
ObjectName name,
ObjectName loaderName,
Object[] params,
String[] signature)
在 MBean 伺服器中實例化並註冊一個 MBean。 |
ObjectInputStream |
deserialize(ObjectName name,
byte[] data)
已過時。 使用 getClassLoaderFor 為反序列化獲得合適的類別載入器。 |
ObjectInputStream |
deserialize(String className,
byte[] data)
已過時。 使用 getClassLoaderRepository() 來獲得類別載入器存儲資源庫並使用它進行反序列化。 |
ObjectInputStream |
deserialize(String className,
ObjectName loaderName,
byte[] data)
已過時。 使用 getClassLoader 為反序列化獲得類別載入器。 |
Object |
getAttribute(ObjectName name,
String attribute)
獲得指定 MBean 的特定屬性值。 |
AttributeList |
getAttributes(ObjectName name,
String[] attributes)
獲得指定 MBean 的多個屬性值。 |
ClassLoader |
getClassLoader(ObjectName loaderName)
返回指定的 ClassLoader 。 |
ClassLoader |
getClassLoaderFor(ObjectName mbeanName)
返回用於載入指定 MBean 的類別的 ClassLoader 。 |
ClassLoaderRepository |
getClassLoaderRepository()
返回此 MBeanServer 的 ClassLoaderRepository。 |
String |
getDefaultDomain()
返回對 MBean 命名時使用的預設域。 |
String[] |
getDomains()
返回其中所有 MBean 當前已註冊的域的列表。 |
Integer |
getMBeanCount()
返回 MBean 伺服器中已註冊的 MBean 的數目。 |
MBeanInfo |
getMBeanInfo(ObjectName name)
此方法發現了 MBean 為管理而公開的屬性和操作。 |
ObjectInstance |
getObjectInstance(ObjectName name)
獲得向 MBean 伺服器註冊的給定 MBean 的 ObjectInstance 。 |
Object |
instantiate(String className)
使用 MBean 伺服器的 Class Loader Repository 中所有已註冊的類別載入器列表實例化一個物件。 |
Object |
instantiate(String className,
Object[] params,
String[] signature)
使用 MBean 伺服器的 Class Loader Repository 中所有已註冊的類別載入器列表來實例化一個物件。 |
Object |
instantiate(String className,
ObjectName loaderName)
使用由某個物件的 ObjectName 指定的類別載入器來實例化該物件。 |
Object |
instantiate(String className,
ObjectName loaderName,
Object[] params,
String[] signature)
實例化一個物件。 |
Object |
invoke(ObjectName name,
String operationName,
Object[] params,
String[] signature)
在 MBean 上調用某個操作。 |
boolean |
isInstanceOf(ObjectName name,
String className)
如果指定的 MBean 是指定類別的一個實例,則返回 true;否則返回 false。 |
boolean |
isRegistered(ObjectName name)
檢查某個 MBean(通過其物件名標識)是否已向 MBean 伺服器註冊。 |
Set<ObjectInstance> |
queryMBeans(ObjectName name,
QueryExp query)
獲得該 MBean 伺服器所控制的 MBean。 |
Set<ObjectName> |
queryNames(ObjectName name,
QueryExp query)
獲得該 MBean 伺服器所控制的 MBean 的名稱。 |
ObjectInstance |
registerMBean(Object object,
ObjectName name)
將某個預先存在的物件作為 MBean 註冊到 MBean 伺服器中。 |
void |
removeNotificationListener(ObjectName name,
NotificationListener listener)
從已註冊的 MBean 中移除一個偵聽器。 |
void |
removeNotificationListener(ObjectName name,
NotificationListener listener,
NotificationFilter filter,
Object handback)
從已註冊的 MBean 中移除一個偵聽器。 |
void |
removeNotificationListener(ObjectName name,
ObjectName listener)
從已註冊的 MBean 中移除一個偵聽器。 |
void |
removeNotificationListener(ObjectName name,
ObjectName listener,
NotificationFilter filter,
Object handback)
從已註冊的 MBean 中移除一個偵聽器。 |
void |
setAttribute(ObjectName name,
Attribute attribute)
設置指定 MBean 的特定屬性值。 |
AttributeList |
setAttributes(ObjectName name,
AttributeList attributes)
設置指定 MBean 的多個屬性值。 |
void |
unregisterMBean(ObjectName name)
從 MBean 伺服器中註銷一個 MBean。 |
方法詳細資訊 |
---|
ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException
MBeanServerConnection
複製的描述在 MBean 伺服器中實例化並註冊一個 MBean。MBean 伺服器將使用其預設的 Loader Repository
來載入 MBean 的類別。物件名與該 MBean 相關聯。如果給定的物件名為 null,則該 MBean 必須提供自己的名稱,方法是實作 MBeanRegistration
介面並從 preRegister
方法中返回名稱。
此方法等效於 createMBean(className, name, (Object[]) null, (String[]) null)
。
MBeanServerConnection
中的 createMBean
className
- 要實例化的 MBean 的類別名。name
- 該 MBean 的物件名。可以為 null。
ObjectInstance
,包含新實例化的 MBean 的 ObjectName
和 Java 類別名。如果包含的 ObjectName
是 n
,則所包含的 Java 類別名是 getMBeanInfo(n)
.getClassName()
。
ReflectionException
- 套件裝在試圖調用 MBean 的建構子時所出現的 java.lang.ClassNotFoundException
或 java.lang.Exception
。
InstanceAlreadyExistsException
- 如果該 MBean 已經處於 MBean 伺服器的控制之下。
MBeanRegistrationException
- 如果 MBean 的 preRegister
(MBeanRegistration
介面)方法已經拋出異常。不註冊該 MBean。
MBeanException
- 如果 MBean 的建構子已經拋出異常
NotCompliantMBeanException
- 如果此類別不是符合 JMX 的 MBeanObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException
MBeanServerConnection
複製的描述在 MBean 伺服器中實例化並註冊一個 MBean。通過其物件名標識使用的類別載入器。物件名與該 MBean 相關聯。如果載入器的物件名為 null,則將使用載入 MBean 伺服器的 ClassLoader。如果給定的 MBean 物件名為 null,則該 MBean 必須提供自己的名稱,方法是實作 MBeanRegistration
介面並從 preRegister
方法中返回名稱。
此方法等效於 createMBean(className, name, loaderName, (Object[]) null, (String[]) null)
。
MBeanServerConnection
中的 createMBean
className
- 要實例化的 MBean 的類別名。name
- 該 MBean 的物件名。可以為 null。loaderName
- 要使用的類別載入器的物件名。
ObjectInstance
,包含新實例化的 MBean 的 ObjectName
和 Java 類別名。如果包含的 ObjectName
是 n
,則所包含的 Java 類別名是 getMBeanInfo(n)
.getClassName()
。
ReflectionException
- 套件裝在試圖調用 MBean 的建構子時所出現的 java.lang.ClassNotFoundException
或 java.lang.Exception
。
InstanceAlreadyExistsException
- 如果該 MBean 已經處於 MBean 伺服器的控制之下。
MBeanRegistrationException
- 如果 MBean 的 preRegister
(MBeanRegistration
介面)方法已經拋出異常。不註冊該 MBean。
MBeanException
- 如果 MBean 的建構子已經拋出異常。
NotCompliantMBeanException
- 如果此類別不是符合 JMX 的 MBean。
InstanceNotFoundException
- 如果未在 MBean 伺服器中註冊指定的類別載入器。ObjectInstance createMBean(String className, ObjectName name, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException
MBeanServerConnection
複製的描述預設的 Loader Repository
來載入 MBean 的類別。物件名與該 MBean 相關聯。如果給定的物件名為 null,則該 MBean 必須提供自己的名稱,方法是實作 MBeanRegistration
介面並從 preRegister
方法中返回名稱。
MBeanServerConnection
中的 createMBean
className
- 要實例化的 MBean 的類別名。name
- 該 MBean 的物件名。可以為 null。params
- 一個陣列,包含要調用的建構子的參數。signature
- 一個陣列,包含要調用的建構子的簽章。
ObjectInstance
,包含新實例化的 MBean 的 ObjectName
和 Java 類別名。如果包含的 ObjectName
是 n
,則所包含的 Java 類別名是 getMBeanInfo(n)
.getClassName()
。
ReflectionException
- 套件裝在試圖調用 MBean 的建構子時所出現的 java.lang.ClassNotFoundException
或 java.lang.Exception
。
InstanceAlreadyExistsException
- 如果該 MBean 已經處於 MBean 伺服器的控制之下。
MBeanRegistrationException
- 如果 MBean 的 preRegister
(MBeanRegistration
介面)方法已經拋出異常。不註冊該 MBean。
MBeanException
- 如果 MBean 的建構子已經拋出異常
NotCompliantMBeanException
- 如果此類別不是符合 JMX 的 MBeanObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException
MBeanServerConnection
複製的描述MBeanRegistration
介面並從 preRegister
方法中返回名稱。
MBeanServerConnection
中的 createMBean
className
- 要實例化的 MBean 的類別名。name
- 該 MBean 的物件名。可以為 null。loaderName
- 要使用的類別載入器的物件名。params
- 一個陣列,包含要調用的建構子的參數。signature
- 一個陣列,包含要調用的建構子的簽章。
ObjectInstance
,包含新實例化的 MBean 的 ObjectName
和 Java 類別名。如果包含的 ObjectName
是 n
,則所包含的 Java 類別名是 getMBeanInfo(n)
.getClassName()
。
ReflectionException
- 套件裝在試圖調用 MBean 的建構子時所出現的 java.lang.ClassNotFoundException
或 java.lang.Exception
。
InstanceAlreadyExistsException
- 如果該 MBean 已經處於 MBean 伺服器的控制之下。
MBeanRegistrationException
- 如果 MBean 的 preRegister
(MBeanRegistration
介面)方法已經拋出異常。不註冊該 MBean。
MBeanException
- 如果 MBean 的建構子已經拋出異常
NotCompliantMBeanException
- 如果此類別不是符合 JMX 的 MBean
InstanceNotFoundException
- 如果未在 MBean 伺服器中註冊指定的類別載入器。ObjectInstance registerMBean(Object object, ObjectName name) throws InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException
MBeanRegistration
介面並從 preRegister
方法中返回名稱。
object
- 要作為 MBean 註冊的 MBean。name
- MBean 的物件名。可以為 null。
ObjectInstance
,它包含新註冊的 MBean 的 ObjectName
和 Java 類別名。如果包含的 ObjectName
是 n
,則包含的 Java 類別名是 getMBeanInfo(n)
.getClassName()
。
InstanceAlreadyExistsException
- 如果該 MBean 已經處於 MBean 伺服器的控制之下。
MBeanRegistrationException
- 如果 MBean 的 preRegister
(MBeanRegistration
介面)方法已經拋出異常。不要註冊該 MBean。
NotCompliantMBeanException
- 如果此物件不是相容 JMX 的 MBean
RuntimeOperationsException
- 套件裝 java.lang.IllegalArgumentException
:如果傳入參數中的物件為 null 或者未指定物件名。void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException
MBeanServerConnection
複製的描述
MBeanServerConnection
中的 unregisterMBean
name
- 要註銷的 MBean 的物件名。
InstanceNotFoundException
- 如果指定的 MBean 未在該 MBean 伺服器中註冊。
MBeanRegistrationException
- 如果 MBean 的 preDeregister(MBeanRegistration
介面)方法已經拋出異常。ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException
MBeanServerConnection
複製的描述ObjectInstance
。
MBeanServerConnection
中的 getObjectInstance
name
- MBean 的物件名。
ObjectInstance
。包含的 ObjectName
是 name
, 且所包含的類別名是 getMBeanInfo(name)
.getClassName()
。
InstanceNotFoundException
- 如果指定的 MBean 未在該 MBean 伺服器中註冊。Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query)
MBeanServerConnection
複製的描述ObjectName
和/或 Query 表達式相比對的網要所指定的一組 MBean、一個特定的 MBean。當物件名為 null 並且未指定域和鍵屬性時,會選中所有物件(如果指定了查詢,則進行過濾)。它返回已選中 MBean 的 ObjectInstance
物件集(包含 ObjectName
和 Java 類別名)
MBeanServerConnection
中的 queryMBeans
name
- 物件名網要,標識要檢索的 MBean。如果為 null 或未指定域和鍵屬性,則檢索所有已註冊的 MBean。query
- 應用到所選 MBean 的查詢表達式。如果為 null,則不對所選的 MBean 應用查詢表達式。
ObjectInstance
物件的集合。如果沒有滿足該查詢的 MBean,則返回一個空列表。Set<ObjectName> queryNames(ObjectName name, QueryExp query)
MBeanServerConnection
複製的描述ObjectName
和/或 Query 表達式相比對的網要所指定的一組 MBean 的名稱、一個特定 MBean 的名稱(等效於測試是否已註冊某個 MBean)。當物件名為 null 並且未指定域和鍵屬性時,會選中所有物件(如果指定了查詢,則進行過濾)。它返回已選中的 MBean 的 ObjectNames 集合。
MBeanServerConnection
中的 queryNames
name
- 物件名網要,標識要檢索的 MBean 名稱。如果為 null 或未指定域和鍵屬性,則檢索所有已註冊的 MBean 的名稱。query
- 應用到所選 MBean 的查詢表達式。如果為 null,則不對選中 MBean 應用查詢表達式。
boolean isRegistered(ObjectName name)
MBeanServerConnection
複製的描述
MBeanServerConnection
中的 isRegistered
name
- 要檢查的 MBean 的物件名。
Integer getMBeanCount()
MBeanServerConnection
中的 getMBeanCount
Object getAttribute(ObjectName name, String attribute) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
MBeanServerConnection
複製的描述
MBeanServerConnection
中的 getAttribute
name
- MBean 的物件名,要通過該物件名檢索 MBean 的屬性。attribute
- 指定要檢索的屬性名的 String。
MBeanException
- 套件裝 MBean 的獲取方法所拋出的異常。
AttributeNotFoundException
- 如果指定的屬性在 MBean 中是不可存取的。
InstanceNotFoundException
- 如果指定的 MBean 未在該 MBean 伺服器中註冊。
ReflectionException
- 套件裝試圖調用設置方法時所拋出的 java.lang.Exception
。MBeanServerConnection.setAttribute(javax.management.ObjectName, javax.management.Attribute)
AttributeList getAttributes(ObjectName name, String[] attributes) throws InstanceNotFoundException, ReflectionException
MBeanServerConnection
複製的描述
MBeanServerConnection
中的 getAttributes
name
- MBean 的物件名,通過該物件名檢索該 MBean 的屬性。attributes
- 要檢索的屬性列表。
InstanceNotFoundException
- 如果指定的 MBean 未在該 MBean 伺服器中註冊。
ReflectionException
- 試圖調用 Dynamic MBean 的 getAttributes 方法時拋出的異常。MBeanServerConnection.setAttributes(javax.management.ObjectName, javax.management.AttributeList)
void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
MBeanServerConnection
複製的描述
MBeanServerConnection
中的 setAttribute
name
- 要設置其屬性的 MBean 的名稱。attribute
- 要設置的屬性的標識及其要設置成的值。
InstanceNotFoundException
- 如果指定的 MBean 未在該 MBean 伺服器中註冊。
AttributeNotFoundException
- 如果指定的屬性在 MBean 中是不可存取的。
InvalidAttributeValueException
- 如果為該屬性指定的值無效。
MBeanException
- 套件裝 MBean 的設置方法所拋出的異常。
ReflectionException
- 套件裝試圖調用設置方法時所拋出的 java.lang.Exception
。MBeanServerConnection.getAttribute(javax.management.ObjectName, java.lang.String)
AttributeList setAttributes(ObjectName name, AttributeList attributes) throws InstanceNotFoundException, ReflectionException
MBeanServerConnection
複製的描述
MBeanServerConnection
中的 setAttributes
name
- 要設置其屬性的 MBean 的物件名。attributes
- 屬性列表:要設置的屬性的標識及其要設置成的值。
InstanceNotFoundException
- 如果指定的 MBean 未在該 MBean 伺服器中註冊。
ReflectionException
- 試圖調用 Dynamic MBean 的 getAttributes 方法時拋出的異常。MBeanServerConnection.getAttributes(javax.management.ObjectName, java.lang.String[])
Object invoke(ObjectName name, String operationName, Object[] params, String[] signature) throws InstanceNotFoundException, MBeanException, ReflectionException
MBeanServerConnection
複製的描述
MBeanServerConnection
中的 invoke
name
- MBean 的物件名,要在該 MBean 上調用方法。operationName
- 要調用的操作名。params
- 一個陣列,包含調用操作時要設置的參數signature
- 套件含操作簽章的陣列。用於載入類別物件的類別載入器與用於載入 MBean(要在其上調用操作)的類別載入器相同。
InstanceNotFoundException
- 如果指定的 MBean 未在該 MBean 伺服器中註冊。
MBeanException
- 套件裝在 MBean 上調用的方法所拋出的異常。
ReflectionException
- 套件裝試圖調用該方法時所拋出的 java.lang.Exception
。String getDefaultDomain()
MBeanServerConnection
複製的描述
MBeanServerConnection
中的 getDefaultDomain
String[] getDomains()
MBeanServerConnection
複製的描述返回其中所有 MBean 當前已註冊的域的列表。當且僅當至少有一個已註冊的 MBean 並且其 ObjectName 的 getDomain()
等於某個字元串時,返回的陣列中才有該字元串。返回陣列中各個字元串的順序是未定義的。
MBeanServerConnection
中的 getDomains
void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException
MBeanServerConnection
複製的描述向已註冊的 MBean 添加一個偵聽器。
MBeanServer 將 MBean 發出的通知轉發到該偵聽器。如果通知源是對 MBean 物件的參考,則 MBean 伺服器將根據 MBean 的 ObjectName 替換它。否則不更改通知源。
MBeanServerConnection
中的 addNotificationListener
name
- MBean 的名稱,將在該 MBean 上添加偵聽器。listener
- 偵聽器物件,它將處理已註冊的 MBean 所發出的通知。filter
- 過濾器物件。如果 filter 為 null,則處理通知前不執行過濾。handback
- 發出通知時要發送到偵聽器的上下文。
InstanceNotFoundException
- 如果提供的 MBean 與任何已註冊 MBean 都不比對。MBeanServerConnection.removeNotificationListener(ObjectName, NotificationListener)
,
MBeanServerConnection.removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException
MBeanServerConnection
複製的描述向已註冊的 MBean 添加一個偵聽器。
MBeanServer 將 MBean 發出的通知轉發到該偵聽器。如果通知源是對 MBean 物件的參考,則 MBean 伺服器將根據 MBean 的 ObjectName 替換它。否則不更改通知源。
接收通知的偵聽器物件是在調用此方法時使用給定名稱註冊的。即使之後註銷了該偵聽器,它也將繼續接收通知。
MBeanServerConnection
中的 addNotificationListener
name
- MBean 的名稱,將在該 MBean 上添加偵聽器。listener
- 偵聽器的物件名,它將處理已註冊的 MBean 所發出的通知。filter
- 過濾器物件。如果 filter 為 null,則處理通知前不執行過濾。handback
- 發出通知時要發送到偵聽器的上下文。
InstanceNotFoundException
- 如果通知偵聽器或者通知廣播器的 MBean 名與任何已註冊的 MBean 都不比對。MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName)
,
MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)
void removeNotificationListener(ObjectName name, ObjectName listener) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnection
複製的描述如果可能使用不同過濾器或回調多次註冊了該偵聽器,則此方法將移除所有這些註冊關係。
MBeanServerConnection
中的 removeNotificationListener
name
- MBean 的名稱,將移除該 MBean 上的偵聽器。listener
- 要移除的偵聽器的物件名。
InstanceNotFoundException
- 如果提供的 MBean 與任何已註冊 MBean 都不比對。
ListenerNotFoundException
- 如果該偵聽器未在 MBean 中註冊。MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)
void removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnection
複製的描述從已註冊的 MBean 中移除一個偵聽器。
該 MBean 必須具有一個與給定 listener
、filter
和 handback
參數完全比對的偵聽器。如果存在多個這樣的偵聽器,則只移除一個。
當且僅當 filter
和 handback
在要移除的偵聽器中為 null 時,這兩個參數才可以為 null。
MBeanServerConnection
中的 removeNotificationListener
name
- MBean 的名稱,將移除該 MBean 上的偵聽器。listener
- 要移除的偵聽器的物件名。filter
- 添加偵聽器時所指定的過濾器。handback
- 添加偵聽器時所指定的回調。
InstanceNotFoundException
- 如果提供的 MBean 與任何已註冊 MBean 都不比對。
ListenerNotFoundException
- 如果偵聽器未在 MBean 中註冊,或者沒有用給定的過濾器和回調註冊它。MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)
void removeNotificationListener(ObjectName name, NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnection
複製的描述從已註冊的 MBean 中移除一個偵聽器。
如果可能使用不同過濾器或回調多次註冊了該偵聽器,則此方法將移除所有這些註冊關係。
MBeanServerConnection
中的 removeNotificationListener
name
- MBean 的名稱,將移除該 MBean 上的偵聽器。listener
- 要移除的偵聽器。
InstanceNotFoundException
- 如果提供的 MBean 與任何已註冊 MBean 都不比對。
ListenerNotFoundException
- 如果該偵聽器未在 MBean 中註冊。MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
void removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnection
複製的描述從已註冊的 MBean 中移除一個偵聽器。
該 MBean 必須具有一個與給定 listener
、filter
和 handback
參數完全比對的偵聽器。如果存在多個這樣的偵聽器,則只移除一個。
當且僅當 filter
和 handback
在要移除的偵聽器中為 null 時,這兩個參數才可以為 null。
MBeanServerConnection
中的 removeNotificationListener
name
- MBean 的名稱,將移除該 MBean 上的偵聽器。listener
- 要移除的偵聽器。filter
- 添加偵聽器時所指定的過濾器。handback
- 添加偵聽器時所指定的回調。
InstanceNotFoundException
- 如果提供的 MBean 與任何已註冊 MBean 都不比對。
ListenerNotFoundException
- 如果偵聽器未在 MBean 中註冊,或者沒有用給定的過濾器和回調註冊它。MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ReflectionException
MBeanServerConnection
複製的描述
MBeanServerConnection
中的 getMBeanInfo
name
- 要分析的 MBean 名稱
MBeanInfo
實例,允許檢索此 MBean 的所有屬性和操作。
InstanceNotFoundException
- 如果未找到指定的 MBean。
IntrospectionException
- 如果在 introspection 期間出現異常。
ReflectionException
- 試圖調用 Dynamic MBean 的 getMBeanInfo 方法時拋出的異常。boolean isInstanceOf(ObjectName name, String className) throws InstanceNotFoundException
MBeanServerConnection
複製的描述如果指定的 MBean 是指定類別的一個實例,則返回 true;否則返回 false。
如果 name
不是 MBean 的名稱,則此方法拋出 InstanceNotFoundException
。
否則,假定
X 是 name
所命名的 MBean、
L 是 X 的 ClassLoader、
N 是 X 的 MBeanInfo
中的類別名。
如果 N 等於 className
,則結果為 true。
如果 L 成功載入了 className
,並且 X 是此類別的一個實例,則結果為 true。
如果 L 成功載入了 N 和 className
,並且由於第一個類別而使第二個類別是可分派的,則結果為 true。
否則結果為 false。
MBeanServerConnection
中的 isInstanceOf
name
- MBean 的 ObjectName
。className
- 類別名。
InstanceNotFoundException
- 如果指定的 MBean 未在該 MBean 伺服器中註冊。Class.isInstance(java.lang.Object)
Object instantiate(String className) throws ReflectionException, MBeanException
使用 MBean 伺服器的 Class Loader Repository
中所有已註冊的類別載入器列表實例化一個物件。該物件的類別應該具有公共建構子。此方法返回對新創建物件的參考。新創建的物件未在該 MBean 伺服器中註冊。
此方法等效於 instantiate(className, (Object[]) null, (String[]) null)
。
className
- 要實例化的物件的類別名。
ReflectionException
- 套件裝在試圖調用該物件的建構子時出現的 java.lang.ClassNotFoundException
或 java.lang.Exception
。
MBeanException
- 如果該物件的建構子已經拋出異常
RuntimeOperationsException
- 套件裝 java.lang.IllegalArgumentException
:如果傳入參數中的 className 為 null。Object instantiate(String className, ObjectName loaderName) throws ReflectionException, MBeanException, InstanceNotFoundException
使用由某個物件的 ObjectName
指定的類別載入器來實例化該物件。如果載入器名為 null,則將使用載入 MBean 伺服器的 ClassLoader。該物件的類別應該具有公共建構子。方法返回對新創建物件的參考。新創建的物件未在該 MBean 伺服器中註冊。
此方法等效於 instantiate(className, loaderName, (Object[]) null, (String[]) null)
。
className
- 要實例化的 MBean 的類別名。loaderName
- 要使用的類別載入器的物件名。
ReflectionException
- 套件裝在試圖調用該物件的建構子時出現的 java.lang.ClassNotFoundException
或 java.lang.Exception
。
MBeanException
- 如果該物件的建構子已拋出異常。
InstanceNotFoundException
- 如果指定的類別載入器未在該 MBeanServer 中註冊。
RuntimeOperationsException
- 套件裝 java.lang.IllegalArgumentException
:如果傳入參數中的 className 為 null。Object instantiate(String className, Object[] params, String[] signature) throws ReflectionException, MBeanException
使用 MBean 伺服器的 Class Loader Repository
中所有已註冊的類別載入器列表來實例化一個物件。該物件的類別應該具有公共建構子。該調用返回對新創建物件的參考。新創建的物件未在該 MBean 伺服器中註冊。
className
- 要實例化的物件的類別名。params
- 一個陣列,包含要調用的建構子的參數。signature
- 一個陣列,包含要調用的建構子的簽章。
ReflectionException
- 套件裝在試圖調用該物件的建構子時出現的 java.lang.ClassNotFoundException
或 java.lang.Exception
。
MBeanException
- 如果該物件的建構子已經拋出異常
RuntimeOperationsException
- 套件裝 java.lang.IllegalArgumentException
:如果傳入參數中的 className 為 null。Object instantiate(String className, ObjectName loaderName, Object[] params, String[] signature) throws ReflectionException, MBeanException, InstanceNotFoundException
實例化一個物件。用該物件的物件名標識要使用的類別載入器。如果載入器的物件名為 null,則將使用載入 MBean 伺服器的 ClassLoader。該物件的類別應該具有公共建構子。該調用返回對新創建物件的參考。新創建的物件未在該 MBean 伺服器中註冊。
className
- 要實例化的物件的類別名。params
- 一個陣列,包含要調用的建構子的參數。signature
- 一個陣列,包含要調用的建構子的簽章。loaderName
- 要使用的類別載入器的物件名。
ReflectionException
- 套件裝在試圖調用該物件的建構子時出現的 java.lang.ClassNotFoundException
或 java.lang.Exception
。
MBeanException
- 如果該物件的建構子已經拋出異常
InstanceNotFoundException
- 如果指定的類別載入器未在該 MBean 伺服器中註冊。
RuntimeOperationsException
- 套件裝 java.lang.IllegalArgumentException
:如果傳入參數中的 className 為 null。@Deprecated ObjectInputStream deserialize(ObjectName name, byte[] data) throws InstanceNotFoundException, OperationsException
getClassLoaderFor
為反序列化獲得合適的類別載入器。
在 MBean 的類別載入器上下文中反序列化一個位元組陣列。
name
- MBean 名,該 MBean 的類別載入器應該用於反序列化。data
- 要被反序列化的位元組陣列。
InstanceNotFoundException
- 如果未找到指定的 MBean。
OperationsException
- 任何常規的輸入/輸出相關的異常。@Deprecated ObjectInputStream deserialize(String className, byte[] data) throws OperationsException, ReflectionException
getClassLoaderRepository()
來獲得類別載入器存儲資源庫並使用它進行反序列化。
在給定的 MBean 類別載入器上下文中反序列化一個位元組陣列。通過 Class Loader Repository
載入類別 className
來找到該類別載入器。結果類別的類別載入器就是要使用的類別載入器。
className
- 類別名,該類別的類別載入器應該用於反序列化。data
- 要被反序列化的位元組陣列。
OperationsException
- 任何常規的輸入/輸出相關的異常。
ReflectionException
- 如果無法由類別載入器存儲資源庫載入指定的類別@Deprecated ObjectInputStream deserialize(String className, ObjectName loaderName, byte[] data) throws InstanceNotFoundException, OperationsException, ReflectionException
getClassLoader
為反序列化獲得類別載入器。
在給定的 MBean 類別載入器上下文中反序列化一個位元組陣列。該類別載入器是載入名為 "className" 的類別的類別載入器。用於載入指定類別的類別載入器的名稱是指定的。如果為 null,則使用 MBean 伺服器的類別載入器。
className
- 類別名,該類別的類別載入器應該用於反序列化。data
- 將被反序列化的位元組陣列。loaderName
- 用於載入指定類別的類別載入器的名稱。如果為 null,則使用 MBean 伺服器的類別載入器。
InstanceNotFoundException
- 如果未找到指定的類別載入器 MBean。
OperationsException
- 任何常規的輸入/輸出相關的異常。
ReflectionException
- 無法由指定類別載入器載入指定的類別。ClassLoader getClassLoaderFor(ObjectName mbeanName) throws InstanceNotFoundException
返回用於載入指定 MBean 的類別的 ClassLoader
。
mbeanName
- MBean 的 ObjectName。
.loadClass(s)
的結果與 l.loadClass(s)
的結果相同。
InstanceNotFoundException
- 如果未找到指定的 MBean。ClassLoader getClassLoader(ObjectName loaderName) throws InstanceNotFoundException
返回指定的 ClassLoader
。
loaderName
- ClassLoader 的 ObjectName。可以為 null,在這種情況下,則返回該 MBean 伺服器自己的 ClassLoader。
.loadClass(s)
的結果與 l.loadClass(s)
的結果相同。
InstanceNotFoundException
- 如果未找到指定的 ClassLoader。ClassLoaderRepository getClassLoaderRepository()
返回此 MBeanServer 的 ClassLoaderRepository。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。