JavaTM 2 Platform
Standard Ed. 6

javax.management.remote.rmi
介面 RMIConnection

所有父級介面:
Closeable, Remote
所有已知實作類別:
RMIConnectionImpl, RMIConnectionImpl_Stub

public interface RMIConnection
extends Closeable, Remote

RMI 物件,用於將 MBeanServer 請求從客戶端轉發到其位於伺服器端的 MBeanServer 實作。連接到 RMI 連接器的每個遠端客戶端都有一個實作此介面的 Remote 物件。

使用者程式碼不經常參考此介面。它作為公用 API 的一部分指定,便於該 API 的不同實作之間實作互操作。

為確保用正確的類別載入器將客戶端參數在伺服器端反序列化,客戶端參數(例如,用於調用方法的參數)包裹在 MarshalledObject 方法中。此介面的實作必須首先獲得適用於操作及其目標的適當的類別載入器,然後用該類別載入器反序列化編組的參數。除非另外說明,MarshalledObjectMarshalledObject[] 型別的參數必定不為 null;如果參數為 null,則行為不明確。

有關類別載入的內容在 JMX Specification, version 1.4 PDF 文檔中進行了詳細的描述。

此介面中的多數方法與 MBeanServerConnection 介面中的方法相似。這裡未指定方法的行為方面,它與相應的 MBeanServerConnection 方法相同。

從以下版本開始:
1.5

方法摘要
 void addNotificationListener(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject handback, Subject delegationSubject)
          處理 MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) 方法。
 Integer[] addNotificationListeners(ObjectName[] names, MarshalledObject[] filters, Subject[] delegationSubjects)
          處理 MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) 方法。
 void close()
          關閉此連接。
 ObjectInstance createMBean(String className, ObjectName name, MarshalledObject params, String[] signature, Subject delegationSubject)
          處理 MBeanServerConnection.createMBean(String, ObjectName, Object[], String[]) 方法。
 ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, MarshalledObject params, String[] signature, Subject delegationSubject)
          處理 MBeanServerConnection.createMBean(String, ObjectName, ObjectName, Object[], String[]) 方法。
 ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Subject delegationSubject)
          處理 MBeanServerConnection.createMBean(String, ObjectName, ObjectName) 方法。
 ObjectInstance createMBean(String className, ObjectName name, Subject delegationSubject)
          處理 MBeanServerConnection.createMBean(String, ObjectName) 方法。
 NotificationResult fetchNotifications(long clientSequenceNumber, int maxNotifications, long timeout)
          檢索來自連接器伺服器的通知。
 Object getAttribute(ObjectName name, String attribute, Subject delegationSubject)
          處理 MBeanServerConnection.getAttribute(ObjectName, String) 方法。
 AttributeList getAttributes(ObjectName name, String[] attributes, Subject delegationSubject)
          處理 MBeanServerConnection.getAttributes(ObjectName, String[]) 方法。
 String getConnectionId()
          返回連接 ID。
 String getDefaultDomain(Subject delegationSubject)
          處理 MBeanServerConnection.getDefaultDomain() 方法。
 String[] getDomains(Subject delegationSubject)
          處理 MBeanServerConnection.getDomains() 方法。
 Integer getMBeanCount(Subject delegationSubject)
          處理 MBeanServerConnection.getMBeanCount() 方法。
 MBeanInfo getMBeanInfo(ObjectName name, Subject delegationSubject)
          處理 MBeanServerConnection.getMBeanInfo(ObjectName) 方法。
 ObjectInstance getObjectInstance(ObjectName name, Subject delegationSubject)
          處理 MBeanServerConnection.getObjectInstance(ObjectName) 方法。
 Object invoke(ObjectName name, String operationName, MarshalledObject params, String[] signature, Subject delegationSubject)
          處理 MBeanServerConnection.invoke(ObjectName, String, Object[], String[]) 方法。
 boolean isInstanceOf(ObjectName name, String className, Subject delegationSubject)
          處理 MBeanServerConnection.isInstanceOf(ObjectName, String) 方法。
 boolean isRegistered(ObjectName name, Subject delegationSubject)
          處理 MBeanServerConnection.isRegistered(ObjectName) 方法。
 Set<ObjectInstance> queryMBeans(ObjectName name, MarshalledObject query, Subject delegationSubject)
          處理 MBeanServerConnection.queryMBeans(ObjectName, QueryExp) 方法。
 Set<ObjectName> queryNames(ObjectName name, MarshalledObject query, Subject delegationSubject)
          處理 MBeanServerConnection.queryNames(ObjectName, QueryExp) 方法。
 void removeNotificationListener(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject handback, Subject delegationSubject)
          處理 MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) 方法。
 void removeNotificationListener(ObjectName name, ObjectName listener, Subject delegationSubject)
          處理 MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName) 方法。
 void removeNotificationListeners(ObjectName name, Integer[] listenerIDs, Subject delegationSubject)
          處理 removeNotificationListener(ObjectName, NotificationListener)removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) 方法。
 void setAttribute(ObjectName name, MarshalledObject attribute, Subject delegationSubject)
          處理 MBeanServerConnection.setAttribute(ObjectName, Attribute) 方法。
 AttributeList setAttributes(ObjectName name, MarshalledObject attributes, Subject delegationSubject)
          處理 MBeanServerConnection.setAttributes(ObjectName, AttributeList) 方法。
 void unregisterMBean(ObjectName name, Subject delegationSubject)
          處理 MBeanServerConnection.unregisterMBean(ObjectName) 方法。
 

方法詳細資訊

getConnectionId

String getConnectionId()
                       throws IOException

返回連接 ID。對於每個到給定的 RMI 連接器伺服器的開放連接,此字元串都不相同。

返回:
連接 ID
拋出:
IOException - 如果出現通用通信異常。
另請參見:
RMIConnector.connect

close

void close()
           throws IOException

關閉此連接。從此方法返回時,不導出實作此介面的 RMI 物件,因此對它的進一步遠端調用將失敗。

指定者:
介面 Closeable 中的 close
拋出:
IOException - 如果無法關閉連接,或 Remote 物件無法被導出,或者在傳輸遠端關閉請求時出現通信故障。

createMBean

ObjectInstance createMBean(String className,
                           ObjectName name,
                           Subject delegationSubject)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  IOException
處理 MBeanServerConnection.createMBean(String, ObjectName) 方法。

參數:
className - 要實例化的 MBean 的類別名稱。
name - MBean 的物件名。可以為 null。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 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。
RuntimeOperationsException - 套件裝了 java.lang.IllegalArgumentException:className 傳入的參數為 null,ObjectName 傳入的參數包含網要或未為 MBean 指定任何 ObjectName
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。

createMBean

ObjectInstance createMBean(String className,
                           ObjectName name,
                           ObjectName loaderName,
                           Subject delegationSubject)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  InstanceNotFoundException,
                                  IOException
處理 MBeanServerConnection.createMBean(String, ObjectName, ObjectName) 方法。

參數:
className - 要實例化的 MBean 的類別名稱。
name - MBean 的物件名。可以為 null。
loaderName - 要使用的類別載入器的物件名。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 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。
InstanceNotFoundException - 指定的類別載入器未在 MBean 伺服器中註冊。
RuntimeOperationsException - 套件裝了 java.lang.IllegalArgumentException:className 傳入的參數為 null,ObjectName 傳入的參數包含網要或未為 MBean 指定任何 ObjectName
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。

createMBean

ObjectInstance createMBean(String className,
                           ObjectName name,
                           MarshalledObject params,
                           String[] signature,
                           Subject delegationSubject)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  IOException
處理 MBeanServerConnection.createMBean(String, ObjectName, Object[], String[]) 方法。Object[] 參數包裹在 MarshalledObject 中。

參數:
className - 要實例化的 MBean 的類別名稱。
name - MBean 的物件名。可以為 null。
params - 套件含要調用的建構子的參數的陣列,陣列封裝在 MarshalledObject 中。封裝的陣列可以為 null,其等效於一個空陣列。
signature - 套件含要調用的建構子的簽章的陣列。可以為 null,等效於一個空陣列。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 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。
RuntimeOperationsException - 套件裝了 java.lang.IllegalArgumentException:className 傳入的參數為 null,ObjectName 傳入的參數包含一個網要,或未為 MBean 指定任何 ObjectName
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。

createMBean

ObjectInstance createMBean(String className,
                           ObjectName name,
                           ObjectName loaderName,
                           MarshalledObject params,
                           String[] signature,
                           Subject delegationSubject)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  InstanceNotFoundException,
                                  IOException
處理 MBeanServerConnection.createMBean(String, ObjectName, ObjectName, Object[], String[]) 方法。Object[] 參數包裹在 MarshalledObject 中。

參數:
className - 要實例化的 MBean 的類別名稱。
name - MBean 的物件名。可以為 null。
loaderName - 要使用的類別載入器的物件名。
params - 套件含要調用的建構子的參數的陣列,陣列封裝在 MarshalledObject 中。封裝的陣列可以為 null,其等效於一個空陣列。
signature - 套件含要調用的建構子的簽章的陣列。可以為 null,等效於一個空陣列。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 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。
InstanceNotFoundException - 指定的類別載入器未在 MBean 伺服器中註冊。
RuntimeOperationsException - 套件裝了 java.lang.IllegalArgumentException:className 傳入的參數為 null,ObjectName 傳入的參數包含一個網要,或未為 MBean 指定任何 ObjectName
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。

unregisterMBean

void unregisterMBean(ObjectName name,
                     Subject delegationSubject)
                     throws InstanceNotFoundException,
                            MBeanRegistrationException,
                            IOException
處理 MBeanServerConnection.unregisterMBean(ObjectName) 方法。

參數:
name - 要註冊的 MBean 的物件名。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
拋出:
InstanceNotFoundException - 指定的 MBean 未在 MBean 伺服器中註冊。
MBeanRegistrationException - MBean 的 preDeregister (MBeanRegistration 介面)方法已拋出異常。
RuntimeOperationsException - 套件裝了 java.lang.IllegalArgumentException:參數中的物件名為 null 或您嘗試註銷的 MBean 為 MBeanServerDelegate MBean。
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。

getObjectInstance

ObjectInstance getObjectInstance(ObjectName name,
                                 Subject delegationSubject)
                                 throws InstanceNotFoundException,
                                        IOException
處理 MBeanServerConnection.getObjectInstance(ObjectName) 方法。

參數:
name - MBean 的物件名。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
返回:
name 指定的與 MBean 關聯的 ObjectInstance。所包含的 ObjectNamename,所包含的類別名稱為 getMBeanInfo(name).getClassName()
拋出:
InstanceNotFoundException - 指定的 MBean 未在 MBean 伺服器中註冊。
RuntimeOperationsException - 套件裝了 java.lang.IllegalArgumentException:參數中的物件名為 null。
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。

queryMBeans

Set<ObjectInstance> queryMBeans(ObjectName name,
                                MarshalledObject query,
                                Subject delegationSubject)
                                throws IOException
處理 MBeanServerConnection.queryMBeans(ObjectName, QueryExp) 方法。QueryExp 套件裝在 MarshalledObject 中。

參數:
name - 標識要檢索的 MBean 的物件名網要。如果指定了 null 或未指定任何域或關鍵字屬性,則將檢索所有已註冊的 MBean。
query - 用於選擇 MBean 的查詢表達式,它封裝在 MarshalledObject 中。如果 MarshalledObject 封裝了一個 null 值,則選擇 MBean 時不使用任何查詢表達式。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
返回:
包含選定 MBean 的 ObjectInstance 物件集。如果沒有任何 MBean 滿足此查詢,則返回一個空列表。
拋出:
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。

queryNames

Set<ObjectName> queryNames(ObjectName name,
                           MarshalledObject query,
                           Subject delegationSubject)
                           throws IOException
處理 MBeanServerConnection.queryNames(ObjectName, QueryExp) 方法。QueryExp 套件裝在 MarshalledObject 中。

參數:
name - 標識要檢索的 MBean 名稱的物件名網要。如果指定了 null 或未指定任何域或關鍵字屬性,則將檢索所有已註冊的 MBean 的名稱。
query - 用於選擇 MBean 的查詢表達式,它封裝在 MarshalledObject 中。如果 MarshalledObject 封裝了一個 null 值,則選擇 MBean 時不使用任何查詢表達式。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
返回:
包含選定的 MBean 的 ObjectName 集。如果沒有任何 MBean 滿足此查詢,則返回一個空列表。
拋出:
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。

isRegistered

boolean isRegistered(ObjectName name,
                     Subject delegationSubject)
                     throws IOException
處理 MBeanServerConnection.isRegistered(ObjectName) 方法。

參數:
name - 要檢查的 MBean 的物件名。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
返回:
True 如果 MBean 已在 MBean 伺服器上註冊,否則返回 false。
拋出:
RuntimeOperationsException - 套件裝了 java.lang.IllegalArgumentException:參數中的物件名為 null。
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。

getMBeanCount

Integer getMBeanCount(Subject delegationSubject)
                      throws IOException
處理 MBeanServerConnection.getMBeanCount() 方法。

參數:
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
返回:
已註冊的 MBean 數。
拋出:
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。

getAttribute

Object getAttribute(ObjectName name,
                    String attribute,
                    Subject delegationSubject)
                    throws MBeanException,
                           AttributeNotFoundException,
                           InstanceNotFoundException,
                           ReflectionException,
                           IOException
處理 MBeanServerConnection.getAttribute(ObjectName, String) 方法。

參數:
name - 將要從其檢索屬性的 MBean 的物件名。
attribute - 指定要檢索的屬性名稱的字元串。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
返回:
檢索到的屬性的值。
拋出:
AttributeNotFoundException - 指定的屬性在 MBean 中無法存取。
MBeanException - 套件裝了由 MBean 的獲取方法拋出的異常。
InstanceNotFoundException - 指定的 MBean 未在 MBean 伺服器中註冊。
ReflectionException - 套件裝了嘗試調用獲取方法時拋出的 java.lang.Exception
RuntimeOperationsException - 套件裝了 java.lang.IllegalArgumentException:參數中的物件名為 null,或參數中的屬性為 null。
RuntimeMBeanException - 套件裝了由 MBean 的獲取方法拋出的運行時異常。
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。
另請參見:
setAttribute(javax.management.ObjectName, java.rmi.MarshalledObject, javax.security.auth.Subject)

getAttributes

AttributeList getAttributes(ObjectName name,
                            String[] attributes,
                            Subject delegationSubject)
                            throws InstanceNotFoundException,
                                   ReflectionException,
                                   IOException
處理 MBeanServerConnection.getAttributes(ObjectName, String[]) 方法。

參數:
name - 從其檢索屬性的 MBean 的物件名。
attributes - 要檢索的屬性的列表。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
返回:
所檢索的屬性的列表。
拋出:
InstanceNotFoundException - 指定的 MBean 未在 MBean 伺服器中註冊。
ReflectionException - 嘗試調用 Dynamic MBean 的 getAttributes 方法時出現的異常。
RuntimeOperationsException - 套件裝了 java.lang.IllegalArgumentException:參數中的物件名為 null,或參數中的屬性為 null。
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。
另請參見:
setAttributes(javax.management.ObjectName, java.rmi.MarshalledObject, javax.security.auth.Subject)

setAttribute

void setAttribute(ObjectName name,
                  MarshalledObject attribute,
                  Subject delegationSubject)
                  throws InstanceNotFoundException,
                         AttributeNotFoundException,
                         InvalidAttributeValueException,
                         MBeanException,
                         ReflectionException,
                         IOException
處理 MBeanServerConnection.setAttribute(ObjectName, Attribute) 方法。Attribute 參數包裹在 MarshalledObject 中。

參數:
name - 在其中設置屬性的 MBean 的名稱。
attribute - 要設置的屬性的標識及要設置的值,封裝在 MarshalledObject 中。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
拋出:
InstanceNotFoundException - 指定的 MBean 未在 MBean 伺服器中註冊。
AttributeNotFoundException - 指定的屬性在 MBean 中無法存取。
InvalidAttributeValueException - 為屬性指定的值無效。
MBeanException - 套件裝了由 MBean 的設置方法拋出的異常。
ReflectionException - 套件裝了嘗試調用設置方法時拋出的 java.lang.Exception
RuntimeOperationsException - 套件裝了 java.lang.IllegalArgumentException:參數中的物件名為 null,或參數中的屬性為 null。
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。
另請參見:
getAttribute(javax.management.ObjectName, java.lang.String, javax.security.auth.Subject)

setAttributes

AttributeList setAttributes(ObjectName name,
                            MarshalledObject attributes,
                            Subject delegationSubject)
                            throws InstanceNotFoundException,
                                   ReflectionException,
                                   IOException
處理 MBeanServerConnection.setAttributes(ObjectName, AttributeList) 方法。AttributeList 參數包裹在 MarshalledObject 中。

參數:
name - 要在其中設置屬性的 MBean 的物件名。
attributes - 屬性列表:要設置的屬性的標識及要設置的值,封裝在 MarshalledObject 中。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
返回:
原先設置過的帶有新值的屬性列表。
拋出:
InstanceNotFoundException - 指定的 MBean 未在 MBean 伺服器中註冊。
ReflectionException - 嘗試調用 Dynamic MBean 的 getAttributes 方法時出現的異常。
RuntimeOperationsException - 套件裝了 java.lang.IllegalArgumentException:參數中的物件名為 null,或參數中的屬性為 null。
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。
另請參見:
getAttributes(javax.management.ObjectName, java.lang.String[], javax.security.auth.Subject)

invoke

Object invoke(ObjectName name,
              String operationName,
              MarshalledObject params,
              String[] signature,
              Subject delegationSubject)
              throws InstanceNotFoundException,
                     MBeanException,
                     ReflectionException,
                     IOException
處理 MBeanServerConnection.invoke(ObjectName, String, Object[], String[]) 方法。Object[] 參數包裹在 MarshalledObject 中。

參數:
name - 將在其上調用此方法的 MBean 的物件名。
operationName - 要調用的操作的名稱。
params - 套件含調用操作時將設置的參數的陣列,它封裝在 MarshalledObject 中。封裝的陣列可以為 null,其等效於一個空陣列。
signature - 套件含操作的簽章的陣列。該類別物件將使用與載入在其上調用了操作的 MBean 過程中所用的相同的類別載入器載入。可以為 null,等效於一個空陣列。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
返回:
操作返回的物件,它代表在指定的 MBean 上調用操作的結果。
拋出:
InstanceNotFoundException - 指定的 MBean 未在 MBean 伺服器中註冊。
MBeanException - 套件裝了由 MBean 的調用的方法拋出的異常。
ReflectionException - 套件裝了嘗試調用此方法時拋出的 java.lang.Exception
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。
RuntimeOperationsException - 套件裝了 nameoperationName 為 null 時拋出的 IllegalArgumentException

getDefaultDomain

String getDefaultDomain(Subject delegationSubject)
                        throws IOException
處理 MBeanServerConnection.getDefaultDomain() 方法。

參數:
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
返回:
預設的域。
拋出:
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。

getDomains

String[] getDomains(Subject delegationSubject)
                    throws IOException
處理 MBeanServerConnection.getDomains() 方法。

參數:
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
返回:
域列表。
拋出:
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。

getMBeanInfo

MBeanInfo getMBeanInfo(ObjectName name,
                       Subject delegationSubject)
                       throws InstanceNotFoundException,
                              IntrospectionException,
                              ReflectionException,
                              IOException
處理 MBeanServerConnection.getMBeanInfo(ObjectName) 方法。

參數:
name - 要分析的 MBean 的名稱
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證委託 principal,則為 null
返回:
允許檢索該 MBean 的所有屬性和操作的 MBeanInfo 的實例。
拋出:
IntrospectionException - 自行推算過程中出現的異常。
InstanceNotFoundException - 未找到指定的 MBean。
ReflectionException - 嘗試調用 Dynamic MBean 的 getMBeanInfo 方法時出現的異常。
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。
RuntimeOperationsException - 套件裝了 java.lang.IllegalArgumentException:參數中的物件名為 null。

isInstanceOf

boolean isInstanceOf(ObjectName name,
                     String className,
                     Subject delegationSubject)
                     throws InstanceNotFoundException,
                            IOException
處理 MBeanServerConnection.isInstanceOf(ObjectName, String) 方法。

參數:
name - MBean 的 ObjectName
className - 類別的名稱。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
返回:
按照上面的規則,如果指定的 MBean 為指定類別的實例,則返回 true,否則返回 false。
拋出:
InstanceNotFoundException - 指定的 MBean 未在 MBean 伺服器中註冊。
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。
RuntimeOperationsException - 套件裝了 java.lang.IllegalArgumentException:參數中的物件名為 null。

addNotificationListener

void addNotificationListener(ObjectName name,
                             ObjectName listener,
                             MarshalledObject filter,
                             MarshalledObject handback,
                             Subject delegationSubject)
                             throws InstanceNotFoundException,
                                    IOException
處理 MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) 方法。NotificationFilter 參數包裹在 MarshalledObject 中。Object (handback) 參數也包裹在 MarshalledObject 中。

參數:
name - 應在其上添加偵聽器的 MBean 的名稱。
listener - 將處理由已註冊的 MBean 發出通知的偵聽器的物件名。
filter - 過濾器物件,封裝在 MarshalledObject 中。如果封裝在 MarshalledObject 中的過濾器的值為 null,則在對通知處理之前不執行任何過濾。
handback - 通知發出時發送到偵聽器的上下文,封裝在 MarshalledObject 中。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
拋出:
InstanceNotFoundException - 通知偵聽器或通知廣播器的 MBean 名稱不與註冊的任何 MBean 比對。
RuntimeOperationsException - 套件裝了 IllegalArgumentException。存在由 listener 命名的 MBean,但它並不實作 NotificationListener 介面,或者 namelistener 為 null。
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。
另請參見:
removeNotificationListener(ObjectName, ObjectName, Subject), removeNotificationListener(ObjectName, ObjectName, MarshalledObject, MarshalledObject, Subject)

removeNotificationListener

void removeNotificationListener(ObjectName name,
                                ObjectName listener,
                                Subject delegationSubject)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException,
                                       IOException
處理 MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName) 方法。

參數:
name - 應在其上移除偵聽器的 MBean 的名稱。
listener - 要移除的偵聽器的物件名。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
拋出:
InstanceNotFoundException - 所提供的 MBean 名稱不與任何已註冊 MBean 比對。
ListenerNotFoundException - 偵聽器未在 MBean 中註冊。
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。
RuntimeOperationsException - 當 namelistener 為 null 時包裹了 IllegalArgumentException
另請參見:
addNotificationListener(javax.management.ObjectName, javax.management.ObjectName, java.rmi.MarshalledObject, java.rmi.MarshalledObject, javax.security.auth.Subject)

removeNotificationListener

void removeNotificationListener(ObjectName name,
                                ObjectName listener,
                                MarshalledObject filter,
                                MarshalledObject handback,
                                Subject delegationSubject)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException,
                                       IOException
處理 MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) 方法。NotificationFilter 參數包裹在 MarshalledObject 中。Object 參數也包裹在 MarshalledObject 中。

參數:
name - 應在其上移除偵聽器的 MBean 的名稱。
listener - 原先添加到此 MBean 的偵聽器。
filter - 添加偵聽器時指定的過濾器,它封裝在 MarshalledObject 中。
handback - 添加偵聽器時指定的 handback,它封裝在 MarshalledObject 中。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
拋出:
InstanceNotFoundException - 所提供的 MBean 名稱不與任何已註冊 MBean 比對。
ListenerNotFoundException - 偵聽器未在 MBean 中註冊,或者未用給定的過濾器和 handback 註冊。
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有執行此操作的權限。
IOException - 如果出現通用通信異常。
RuntimeOperationsException - 當 namelistener 為 null 時包裹了 IllegalArgumentException
另請參見:
addNotificationListener(javax.management.ObjectName, javax.management.ObjectName, java.rmi.MarshalledObject, java.rmi.MarshalledObject, javax.security.auth.Subject)

addNotificationListeners

Integer[] addNotificationListeners(ObjectName[] names,
                                   MarshalledObject[] filters,
                                   Subject[] delegationSubjects)
                                   throws InstanceNotFoundException,
                                          IOException

處理 MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) 方法。

供來自給定 MBean 的與給定的過濾器比對的通知使用的記錄。遠端客戶端以後可使用 fetchNotifications 方法檢索該通知。

對於每個偵聽器,原始的 NotificationListenerhandback 保留在客戶端;為說明客戶端識別它們,伺服器產生並返回一個唯一的 listenerID。該 listenerIDNotifications 一起轉發到遠端客戶端。

如果給定 (name, filter) 對中有任何一對無法註冊,則操作失敗並拋出異常,不註冊任何名稱或過濾器。

參數:
names - 標識發出 Notification 的 MBean 的 ObjectNames
filters - NotificationFilters 的編組表示形式的陣列。此陣列的元素可以為 null。
delegationSubjects - 偵聽器代表其添加的 Subjects。此陣列的元素可以為 null。同樣,delegationSubjects 參數本身可以為 null,它表示具有 null 值的陣列,陣列大小與 namesfilters 陣列大小相同。
返回:
標識本地偵聽器的 listenerIDs 陣列。此陣列具有與參數個數相同的元素數。
拋出:
IllegalArgumentException - 如果 namesfilters 為 null,或者 names 套件含 null 元素,或者三個陣列的大小不相同。
ClassCastException - 如果 filters 中有一個元素解組為不是 NotificationFilter 的非 null 物件。
InstanceNotFoundException - 如果 names 中有一個不與任何已註冊的 MBean 對應。
SecurityException - 如果 MBean 之一、客戶端或委託的 Subject(如果有)無權添加偵聽器。
IOException - 如果出現通用通信異常。

removeNotificationListeners

void removeNotificationListeners(ObjectName name,
                                 Integer[] listenerIDs,
                                 Subject delegationSubject)
                                 throws InstanceNotFoundException,
                                        ListenerNotFoundException,
                                        IOException

處理 removeNotificationListener(ObjectName, NotificationListener)removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) 方法。

此方法從 MBean 伺服器中的給定 MBean 中移除一個或多個 NotificationListener

NotificationListeners 通過從 addNotificationListeners(ObjectName[], MarshalledObject[], Subject[]) 方法返回的 ID 標識。

參數:
name - 標識發出 Notification 的 MBean 的 ObjectName
listenerIDs - 與要移除的偵聽器對應的 ID。
delegationSubject - 套件含委託 principal 的 Subject,如果使用了驗證 principal,則為 null
拋出:
InstanceNotFoundException - 如果給定的 name 不對應任何已註冊的 MBean。
ListenerNotFoundException - 如果有一個偵聽器在伺服器端無法找到。當 MBean 出於某種原因丟棄了一個偵聽器,而未通過調用 MBeanServer.removeNotificationListener 丟棄時,出現該異常。
SecurityException - 如果客戶端或委託的 Subject(如果有)沒有移除偵聽器的權限。
IOException - 如果出現通用通信異常。
IllegalArgumentException - 如果 ObjectNamelistenerIds 為 null,或者 listenerIds 套件含一個 null 元素。

fetchNotifications

NotificationResult fetchNotifications(long clientSequenceNumber,
                                      int maxNotifications,
                                      long timeout)
                                      throws IOException

檢索來自連接器伺服器的通知。該方法可能阻塞,直到至少有一個通知,或者直到達到指定的逾時時間。該方法還可在任何時間返回零通知。

如果通知的序列號不小於 clientSequenceNumber,並且此客戶端已為 MBean 產生通知至少註冊了一個偵聽器(帶一個接收通知的過濾器),則通知可包含在該結果中。對通知感興趣的各偵聽器由從 addNotificationListeners(ObjectName[], MarshalledObject[], Subject[]) 返回的整數型 ID 標識。

參數:
clientSequenceNumber - 客戶端感興趣的第一個序列號。如果為負,它表示下一個通知將具有的序列號。
maxNotifications - 返回的不同通知的最大數。如果同一個通知出現了多次,則返回的 NotificationResult 中的 TargetedNotification 陣列可能包含比此數更多的元素。如果該參數為負,則行為不明確。
timeout - 等待通知到達的最長時間,以毫秒為單位。它可以是 0,指示在無通知時該方法不應等待,而應立即返回。它可以為 Long.MAX_VALUE,指示無逾時。如果該參數為負,則行為不明確。
返回:
一個 NotificationResult
拋出:
IOException - 如果出現通用通信異常。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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