JavaTM 2 Platform
Standard Ed. 6

javax.management
介面 MBeanServer

所有父級介面:
MBeanServerConnection
所有已知子介面:
MBeanServerForwarder

public interface MBeanServer
extends MBeanServerConnection

這是在代理端進行 MBean 操作的介面。它包含創建、註冊和刪除 MBean 所需的方法,以及用於已註冊 MBean 的存取方法。這是 JMX 基礎設施的核心元件。

使用者程式碼通常不實作此介面。相反,應該使用 MBeanServerFactory 類別中的某個方法獲得實作此介面的物件。

添加到 MBean 伺服器中的所有 MBean 都會變成得可以管理:通過連接到該 MBeanServer 的連接器/適配器可以遠端存取其屬性和操作。Java 物件不能在 MBean 伺服器中進行註冊,除非它是相容 JMX 的 MBean。

在 MBean 伺服器中註冊或註銷 MBean 時,會發出一個 MBeanServerNotification Notification。要將一個物件註冊為 MBeanServerNotifications 的偵聽器,則應該使用 MBeanServerDelegateObjectName 作為 ObjectName 參數調用 MBean 伺服器方法 addNotificationListener。此 ObjectName 是:
JMImplementation:type=MBeanServerDelegate

MBeanServerFactory 類別的 createMBeanServernewMBeanServer 方法所獲得的物件會對其方法進行安全檢查,如下所示:

首先,如果沒有安全管理器(System.getSecurityManager() 為 null),則此介面的實作可以不進行任何檢查。

假定存在安全管理器,或者實作選擇進行檢查,則按照以下內容進行檢查;className 是目標 MBean 的 MBeanInfo.getClassName() 所返回的字元串。

如果安全檢查失敗,則該方法將拋出 SecurityException

對於可拋出 InstanceNotFoundException 的方法,它會為不存在的 MBean 拋出此異常,而不管權限如何。這是因為不存在的 MBean 沒有 className

從以下版本開始:
1.5

方法摘要
 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。
 

方法詳細資訊

createMBean

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 類別名。如果包含的 ObjectNamen,則所包含的 Java 類別名是 getMBeanInfo(n).getClassName()
拋出:
ReflectionException - 套件裝在試圖調用 MBean 的建構子時所出現的 java.lang.ClassNotFoundExceptionjava.lang.Exception
InstanceAlreadyExistsException - 如果該 MBean 已經處於 MBean 伺服器的控制之下。
MBeanRegistrationException - 如果 MBean 的 preRegisterMBeanRegistration 介面)方法已經拋出異常。不註冊該 MBean。
MBeanException - 如果 MBean 的建構子已經拋出異常
NotCompliantMBeanException - 如果此類別不是符合 JMX 的 MBean

createMBean

ObjectInstance 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 類別名。如果包含的 ObjectNamen,則所包含的 Java 類別名是 getMBeanInfo(n).getClassName()
拋出:
ReflectionException - 套件裝在試圖調用 MBean 的建構子時所出現的 java.lang.ClassNotFoundExceptionjava.lang.Exception
InstanceAlreadyExistsException - 如果該 MBean 已經處於 MBean 伺服器的控制之下。
MBeanRegistrationException - 如果 MBean 的 preRegisterMBeanRegistration 介面)方法已經拋出異常。不註冊該 MBean。
MBeanException - 如果 MBean 的建構子已經拋出異常。
NotCompliantMBeanException - 如果此類別不是符合 JMX 的 MBean。
InstanceNotFoundException - 如果未在 MBean 伺服器中註冊指定的類別載入器。

createMBean

ObjectInstance createMBean(String className,
                           ObjectName name,
                           Object[] params,
                           String[] signature)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException
從介面 MBeanServerConnection 複製的描述
在 MBean 伺服器中實例化並註冊一個 MBean。MBean 伺服器將使用其預設的 Loader Repository 來載入 MBean 的類別。物件名與該 MBean 相關聯。如果給定的物件名為 null,則該 MBean 必須提供自己的名稱,方法是實作 MBeanRegistration 介面並從 preRegister 方法中返回名稱。

指定者:
介面 MBeanServerConnection 中的 createMBean
參數:
className - 要實例化的 MBean 的類別名。
name - 該 MBean 的物件名。可以為 null。
params - 一個陣列,包含要調用的建構子的參數。
signature - 一個陣列,包含要調用的建構子的簽章。
返回:
一個 ObjectInstance,包含新實例化的 MBean 的 ObjectName 和 Java 類別名。如果包含的 ObjectNamen,則所包含的 Java 類別名是 getMBeanInfo(n).getClassName()
拋出:
ReflectionException - 套件裝在試圖調用 MBean 的建構子時所出現的 java.lang.ClassNotFoundExceptionjava.lang.Exception
InstanceAlreadyExistsException - 如果該 MBean 已經處於 MBean 伺服器的控制之下。
MBeanRegistrationException - 如果 MBean 的 preRegisterMBeanRegistration 介面)方法已經拋出異常。不註冊該 MBean。
MBeanException - 如果 MBean 的建構子已經拋出異常
NotCompliantMBeanException - 如果此類別不是符合 JMX 的 MBean

createMBean

ObjectInstance createMBean(String className,
                           ObjectName name,
                           ObjectName loaderName,
                           Object[] params,
                           String[] signature)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  InstanceNotFoundException
從介面 MBeanServerConnection 複製的描述
在 MBean 伺服器中實例化並註冊一個 MBean。通過其物件名標識使用的類別載入器。物件名與該 MBean 相關聯。如果未指定載入器的物件名,則將使用載入 MBean 伺服器的 ClassLoader。如果給定的 MBean 物件名為 null,則該 MBean 必須提供自己的名稱,方法是實作 MBeanRegistration 介面並從 preRegister 方法中返回名稱。

指定者:
介面 MBeanServerConnection 中的 createMBean
參數:
className - 要實例化的 MBean 的類別名。
name - 該 MBean 的物件名。可以為 null。
loaderName - 要使用的類別載入器的物件名。
params - 一個陣列,包含要調用的建構子的參數。
signature - 一個陣列,包含要調用的建構子的簽章。
返回:
一個 ObjectInstance,包含新實例化的 MBean 的 ObjectName 和 Java 類別名。如果包含的 ObjectNamen,則所包含的 Java 類別名是 getMBeanInfo(n).getClassName()
拋出:
ReflectionException - 套件裝在試圖調用 MBean 的建構子時所出現的 java.lang.ClassNotFoundExceptionjava.lang.Exception
InstanceAlreadyExistsException - 如果該 MBean 已經處於 MBean 伺服器的控制之下。
MBeanRegistrationException - 如果 MBean 的 preRegisterMBeanRegistration 介面)方法已經拋出異常。不註冊該 MBean。
MBeanException - 如果 MBean 的建構子已經拋出異常
NotCompliantMBeanException - 如果此類別不是符合 JMX 的 MBean
InstanceNotFoundException - 如果未在 MBean 伺服器中註冊指定的類別載入器。

registerMBean

ObjectInstance registerMBean(Object object,
                             ObjectName name)
                             throws InstanceAlreadyExistsException,
                                    MBeanRegistrationException,
                                    NotCompliantMBeanException
將某個預先存在的物件作為 MBean 註冊到 MBean 伺服器中。如果給定的物件名為 null,則該 MBean 必須提供自己的名稱,方法是實作 MBeanRegistration 介面並從 preRegister 方法中返回名稱。

參數:
object - 要作為 MBean 註冊的 MBean。
name - MBean 的物件名。可以為 null。
返回:
一個 ObjectInstance,它包含新註冊的 MBean 的 ObjectName 和 Java 類別名。如果包含的 ObjectNamen,則包含的 Java 類別名是 getMBeanInfo(n).getClassName()
拋出:
InstanceAlreadyExistsException - 如果該 MBean 已經處於 MBean 伺服器的控制之下。
MBeanRegistrationException - 如果 MBean 的 preRegisterMBeanRegistration 介面)方法已經拋出異常。不要註冊該 MBean。
NotCompliantMBeanException - 如果此物件不是相容 JMX 的 MBean
RuntimeOperationsException - 套件裝 java.lang.IllegalArgumentException:如果傳入參數中的物件為 null 或者未指定物件名。

unregisterMBean

void unregisterMBean(ObjectName name)
                     throws InstanceNotFoundException,
                            MBeanRegistrationException
從介面 MBeanServerConnection 複製的描述
從 MBean 伺服器中註銷一個 MBean。通過 MBean 的物件名來標識 MBean。一旦調用了該方法,就無法再通過 MBean 的物件名來存取該 MBean。

指定者:
介面 MBeanServerConnection 中的 unregisterMBean
參數:
name - 要註銷的 MBean 的物件名。
拋出:
InstanceNotFoundException - 如果指定的 MBean 未在該 MBean 伺服器中註冊。
MBeanRegistrationException - 如果 MBean 的 preDeregister(MBeanRegistration 介面)方法已經拋出異常。

getObjectInstance

ObjectInstance getObjectInstance(ObjectName name)
                                 throws InstanceNotFoundException
從介面 MBeanServerConnection 複製的描述
獲得向 MBean 伺服器註冊的給定 MBean 的 ObjectInstance

指定者:
介面 MBeanServerConnection 中的 getObjectInstance
參數:
name - MBean 的物件名。
返回:
name 所指定的 MBean 相關聯的 ObjectInstance。包含的 ObjectNamename, 且所包含的類別名是 getMBeanInfo(name).getClassName()
拋出:
InstanceNotFoundException - 如果指定的 MBean 未在該 MBean 伺服器中註冊。

queryMBeans

Set<ObjectInstance> queryMBeans(ObjectName name,
                                QueryExp query)
從介面 MBeanServerConnection 複製的描述
獲得該 MBean 伺服器所控制的 MBean。此方法允許獲得下列任意內容:所有 MBean、由與 ObjectName 和/或 Query 表達式相比對的網要所指定的一組 MBean、一個特定的 MBean。當物件名為 null 並且未指定域和鍵屬性時,會選中所有物件(如果指定了查詢,則進行過濾)。它返回已選中 MBean 的 ObjectInstance 物件集(包含 ObjectName 和 Java 類別名)

指定者:
介面 MBeanServerConnection 中的 queryMBeans
參數:
name - 物件名網要,標識要檢索的 MBean。如果為 null 或未指定域和鍵屬性,則檢索所有已註冊的 MBean。
query - 應用到所選 MBean 的查詢表達式。如果為 null,則不對所選的 MBean 應用查詢表達式。
返回:
包含所選的 MBean 的 ObjectInstance 物件的集合。如果沒有滿足該查詢的 MBean,則返回一個空列表。

queryNames

Set<ObjectName> queryNames(ObjectName name,
                           QueryExp query)
從介面 MBeanServerConnection 複製的描述
獲得該 MBean 伺服器所控制的 MBean 的名稱。此方法允許獲得下列任意內容:所有 MBean 的名稱、由與 ObjectName 和/或 Query 表達式相比對的網要所指定的一組 MBean 的名稱、一個特定 MBean 的名稱(等效於測試是否已註冊某個 MBean)。當物件名為 null 並且未指定域和鍵屬性時,會選中所有物件(如果指定了查詢,則進行過濾)。它返回已選中的 MBean 的 ObjectNames 集合。

指定者:
介面 MBeanServerConnection 中的 queryNames
參數:
name - 物件名網要,標識要檢索的 MBean 名稱。如果為 null 或未指定域和鍵屬性,則檢索所有已註冊的 MBean 的名稱。
query - 應用到所選 MBean 的查詢表達式。如果為 null,則不對選中 MBean 應用查詢表達式。
返回:
一個集合,包含已選中 MBean 的 ObjectNames。如果沒有滿足該查詢的 MBean,則返回一個空列表。

isRegistered

boolean isRegistered(ObjectName name)
從介面 MBeanServerConnection 複製的描述
檢查某個 MBean(通過其物件名標識)是否已向 MBean 伺服器註冊。

指定者:
介面 MBeanServerConnection 中的 isRegistered
參數:
name - 要檢查的 MBean 的物件名。
返回:
如果已在 MBean 伺服器中註冊了該 MBean,則返回 True;否則返回 false。

getMBeanCount

Integer getMBeanCount()
返回 MBean 伺服器中已註冊的 MBean 的數目。

指定者:
介面 MBeanServerConnection 中的 getMBeanCount
返回:
已註冊的 MBean 數,包裹在一個 Integer 中。如果調用者的權限是受限制的,則此數可能大於調用者可存取的 MBean 數。

getAttribute

Object getAttribute(ObjectName name,
                    String attribute)
                    throws MBeanException,
                           AttributeNotFoundException,
                           InstanceNotFoundException,
                           ReflectionException
從介面 MBeanServerConnection 複製的描述
獲得指定 MBean 的特定屬性值。通過 MBean 的物件名來標識 MBean。

指定者:
介面 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)

getAttributes

AttributeList getAttributes(ObjectName name,
                            String[] attributes)
                            throws InstanceNotFoundException,
                                   ReflectionException
從介面 MBeanServerConnection 複製的描述
獲得指定 MBean 的多個屬性值。通過 MBean 的物件名來標識 MBean。

指定者:
介面 MBeanServerConnection 中的 getAttributes
參數:
name - MBean 的物件名,通過該物件名檢索該 MBean 的屬性。
attributes - 要檢索的屬性列表。
返回:
檢索到的屬性列表。
拋出:
InstanceNotFoundException - 如果指定的 MBean 未在該 MBean 伺服器中註冊。
ReflectionException - 試圖調用 Dynamic MBean 的 getAttributes 方法時拋出的異常。
另請參見:
MBeanServerConnection.setAttributes(javax.management.ObjectName, javax.management.AttributeList)

setAttribute

void setAttribute(ObjectName name,
                  Attribute attribute)
                  throws InstanceNotFoundException,
                         AttributeNotFoundException,
                         InvalidAttributeValueException,
                         MBeanException,
                         ReflectionException
從介面 MBeanServerConnection 複製的描述
設置指定 MBean 的特定屬性值。通過 MBean 的物件名來標識 MBean。

指定者:
介面 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)

setAttributes

AttributeList setAttributes(ObjectName name,
                            AttributeList attributes)
                            throws InstanceNotFoundException,
                                   ReflectionException
從介面 MBeanServerConnection 複製的描述
設置指定 MBean 的多個屬性值。通過 MBean 的物件名來標識 MBean。

指定者:
介面 MBeanServerConnection 中的 setAttributes
參數:
name - 要設置其屬性的 MBean 的物件名。
attributes - 屬性列表:要設置的屬性的標識及其要設置成的值。
返回:
已設置的屬性的列表,以及它們的新值。
拋出:
InstanceNotFoundException - 如果指定的 MBean 未在該 MBean 伺服器中註冊。
ReflectionException - 試圖調用 Dynamic MBean 的 getAttributes 方法時拋出的異常。
另請參見:
MBeanServerConnection.getAttributes(javax.management.ObjectName, java.lang.String[])

invoke

Object invoke(ObjectName name,
              String operationName,
              Object[] params,
              String[] signature)
              throws InstanceNotFoundException,
                     MBeanException,
                     ReflectionException
從介面 MBeanServerConnection 複製的描述
在 MBean 上調用某個操作。

指定者:
介面 MBeanServerConnection 中的 invoke
參數:
name - MBean 的物件名,要在該 MBean 上調用方法。
operationName - 要調用的操作名。
params - 一個陣列,包含調用操作時要設置的參數
signature - 套件含操作簽章的陣列。用於載入類別物件的類別載入器與用於載入 MBean(要在其上調用操作)的類別載入器相同。
返回:
該操作返回的物件,表示在指定 MBean 上調用該操作的結果。
拋出:
InstanceNotFoundException - 如果指定的 MBean 未在該 MBean 伺服器中註冊。
MBeanException - 套件裝在 MBean 上調用的方法所拋出的異常。
ReflectionException - 套件裝試圖調用該方法時所拋出的 java.lang.Exception

getDefaultDomain

String getDefaultDomain()
從介面 MBeanServerConnection 複製的描述
返回對 MBean 命名時使用的預設域。如果使用者未指定域,則將預設域名用作 MBean 的 ObjectName 的域部分。

指定者:
介面 MBeanServerConnection 中的 getDefaultDomain
返回:
預設域。

getDomains

String[] getDomains()
從介面 MBeanServerConnection 複製的描述

返回其中所有 MBean 當前已註冊的域的列表。當且僅當至少有一個已註冊的 MBean 並且其 ObjectName 的 getDomain() 等於某個字元串時,返回的陣列中才有該字元串。返回陣列中各個字元串的順序是未定義的。

指定者:
介面 MBeanServerConnection 中的 getDomains
返回:
域列表。

addNotificationListener

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)

addNotificationListener

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)

removeNotificationListener

void removeNotificationListener(ObjectName name,
                                ObjectName listener)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException
從介面 MBeanServerConnection 複製的描述
從已註冊的 MBean 中移除一個偵聽器。

如果可能使用不同過濾器或回調多次註冊了該偵聽器,則此方法將移除所有這些註冊關係。

指定者:
介面 MBeanServerConnection 中的 removeNotificationListener
參數:
name - MBean 的名稱,將移除該 MBean 上的偵聽器。
listener - 要移除的偵聽器的物件名。
拋出:
InstanceNotFoundException - 如果提供的 MBean 與任何已註冊 MBean 都不比對。
ListenerNotFoundException - 如果該偵聽器未在 MBean 中註冊。
另請參見:
MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)

removeNotificationListener

void removeNotificationListener(ObjectName name,
                                ObjectName listener,
                                NotificationFilter filter,
                                Object handback)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException
從介面 MBeanServerConnection 複製的描述

從已註冊的 MBean 中移除一個偵聽器。

該 MBean 必須具有一個與給定 listenerfilterhandback 參數完全比對的偵聽器。如果存在多個這樣的偵聽器,則只移除一個。

當且僅當 filterhandback 在要移除的偵聽器中為 null 時,這兩個參數才可以為 null。

指定者:
介面 MBeanServerConnection 中的 removeNotificationListener
參數:
name - MBean 的名稱,將移除該 MBean 上的偵聽器。
listener - 要移除的偵聽器的物件名。
filter - 添加偵聽器時所指定的過濾器。
handback - 添加偵聽器時所指定的回調。
拋出:
InstanceNotFoundException - 如果提供的 MBean 與任何已註冊 MBean 都不比對。
ListenerNotFoundException - 如果偵聽器未在 MBean 中註冊,或者沒有用給定的過濾器和回調註冊它。
另請參見:
MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)

removeNotificationListener

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)

removeNotificationListener

void removeNotificationListener(ObjectName name,
                                NotificationListener listener,
                                NotificationFilter filter,
                                Object handback)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException
從介面 MBeanServerConnection 複製的描述

從已註冊的 MBean 中移除一個偵聽器。

該 MBean 必須具有一個與給定 listenerfilterhandback 參數完全比對的偵聽器。如果存在多個這樣的偵聽器,則只移除一個。

當且僅當 filterhandback 在要移除的偵聽器中為 null 時,這兩個參數才可以為 null。

指定者:
介面 MBeanServerConnection 中的 removeNotificationListener
參數:
name - MBean 的名稱,將移除該 MBean 上的偵聽器。
listener - 要移除的偵聽器。
filter - 添加偵聽器時所指定的過濾器。
handback - 添加偵聽器時所指定的回調。
拋出:
InstanceNotFoundException - 如果提供的 MBean 與任何已註冊 MBean 都不比對。
ListenerNotFoundException - 如果偵聽器未在 MBean 中註冊,或者沒有用給定的過濾器和回調註冊它。
另請參見:
MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)

getMBeanInfo

MBeanInfo getMBeanInfo(ObjectName name)
                       throws InstanceNotFoundException,
                              IntrospectionException,
                              ReflectionException
從介面 MBeanServerConnection 複製的描述
此方法發現了 MBean 為管理而公開的屬性和操作。

指定者:
介面 MBeanServerConnection 中的 getMBeanInfo
參數:
name - 要分析的 MBean 名稱
返回:
一個 MBeanInfo 實例,允許檢索此 MBean 的所有屬性和操作。
拋出:
InstanceNotFoundException - 如果未找到指定的 MBean。
IntrospectionException - 如果在 introspection 期間出現異常。
ReflectionException - 試圖調用 Dynamic MBean 的 getMBeanInfo 方法時拋出的異常。

isInstanceOf

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 - 類別名。
返回:
如果根據上述規則,指定的 MBean 是指定類別的實例,則返回 true;否則返回 false。
拋出:
InstanceNotFoundException - 如果指定的 MBean 未在該 MBean 伺服器中註冊。
另請參見:
Class.isInstance(java.lang.Object)

instantiate

Object instantiate(String className)
                   throws ReflectionException,
                          MBeanException

使用 MBean 伺服器的 Class Loader Repository 中所有已註冊的類別載入器列表實例化一個物件。該物件的類別應該具有公共建構子。此方法返回對新創建物件的參考。新創建的物件未在該 MBean 伺服器中註冊。

此方法等效於 instantiate(className, (Object[]) null, (String[]) null)

參數:
className - 要實例化的物件的類別名。
返回:
新實例化的物件。
拋出:
ReflectionException - 套件裝在試圖調用該物件的建構子時出現的 java.lang.ClassNotFoundExceptionjava.lang.Exception
MBeanException - 如果該物件的建構子已經拋出異常
RuntimeOperationsException - 套件裝 java.lang.IllegalArgumentException:如果傳入參數中的 className 為 null。

instantiate

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.ClassNotFoundExceptionjava.lang.Exception
MBeanException - 如果該物件的建構子已拋出異常。
InstanceNotFoundException - 如果指定的類別載入器未在該 MBeanServer 中註冊。
RuntimeOperationsException - 套件裝 java.lang.IllegalArgumentException:如果傳入參數中的 className 為 null。

instantiate

Object instantiate(String className,
                   Object[] params,
                   String[] signature)
                   throws ReflectionException,
                          MBeanException

使用 MBean 伺服器的 Class Loader Repository 中所有已註冊的類別載入器列表來實例化一個物件。該物件的類別應該具有公共建構子。該調用返回對新創建物件的參考。新創建的物件未在該 MBean 伺服器中註冊。

參數:
className - 要實例化的物件的類別名。
params - 一個陣列,包含要調用的建構子的參數。
signature - 一個陣列,包含要調用的建構子的簽章。
返回:
新實例化的物件。
拋出:
ReflectionException - 套件裝在試圖調用該物件的建構子時出現的 java.lang.ClassNotFoundExceptionjava.lang.Exception
MBeanException - 如果該物件的建構子已經拋出異常
RuntimeOperationsException - 套件裝 java.lang.IllegalArgumentException:如果傳入參數中的 className 為 null。

instantiate

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.ClassNotFoundExceptionjava.lang.Exception
MBeanException - 如果該物件的建構子已經拋出異常
InstanceNotFoundException - 如果指定的類別載入器未在該 MBean 伺服器中註冊。
RuntimeOperationsException - 套件裝 java.lang.IllegalArgumentException:如果傳入參數中的 className 為 null。

deserialize

@Deprecated
ObjectInputStream deserialize(ObjectName name,
                                         byte[] data)
                              throws InstanceNotFoundException,
                                     OperationsException
已過時。 使用 getClassLoaderFor 為反序列化獲得合適的類別載入器。

在 MBean 的類別載入器上下文中反序列化一個位元組陣列。

參數:
name - MBean 名,該 MBean 的類別載入器應該用於反序列化。
data - 要被反序列化的位元組陣列。
返回:
反序列化後的物件串流。
拋出:
InstanceNotFoundException - 如果未找到指定的 MBean。
OperationsException - 任何常規的輸入/輸出相關的異常。

deserialize

@Deprecated
ObjectInputStream deserialize(String className,
                                         byte[] data)
                              throws OperationsException,
                                     ReflectionException
已過時。 使用 getClassLoaderRepository() 來獲得類別載入器存儲資源庫並使用它進行反序列化。

在給定的 MBean 類別載入器上下文中反序列化一個位元組陣列。通過 Class Loader Repository 載入類別 className 來找到該類別載入器。結果類別的類別載入器就是要使用的類別載入器。

參數:
className - 類別名,該類別的類別載入器應該用於反序列化。
data - 要被反序列化的位元組陣列。
返回:
反序列化後的物件串流。
拋出:
OperationsException - 任何常規的輸入/輸出相關的異常。
ReflectionException - 如果無法由類別載入器存儲資源庫載入指定的類別

deserialize

@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 - 無法由指定類別載入器載入指定的類別。

getClassLoaderFor

ClassLoader getClassLoaderFor(ObjectName mbeanName)
                              throws InstanceNotFoundException

返回用於載入指定 MBean 的類別的 ClassLoader

參數:
mbeanName - MBean 的 ObjectName。
返回:
用於該 MBean 的 ClassLoader。如果 l 是該 MBean 的實際 ClassLoader,且 r 是返回的值,則: 這意味著出於安全或其他原因考慮,該 ClassLoader 可能被包裹在另一個 ClassLoader 中。
拋出:
InstanceNotFoundException - 如果未找到指定的 MBean。

getClassLoader

ClassLoader getClassLoader(ObjectName loaderName)
                           throws InstanceNotFoundException

返回指定的 ClassLoader

參數:
loaderName - ClassLoader 的 ObjectName。可以為 null,在這種情況下,則返回該 MBean 伺服器自己的 ClassLoader。
返回:
指定的 ClassLoader。如果 l 是具有該名稱的實際 ClassLoader,且 r 是返回值,則如下所示: 這意味著出於安全或其他原因考慮,該 ClassLoader 可能被包裹在另一個 ClassLoader 中。
拋出:
InstanceNotFoundException - 如果未找到指定的 ClassLoader。

getClassLoaderRepository

ClassLoaderRepository getClassLoaderRepository()

返回此 MBeanServer 的 ClassLoaderRepository。

返回:
此 MBeanServer 的 ClassLoaderRepository。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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