JavaTM 2 Platform
Standard Ed. 6

javax.management
類別 StandardEmitterMBean

java.lang.Object
  繼承者 javax.management.StandardMBean
      繼承者 javax.management.StandardEmitterMBean
所有已實作的介面:
DynamicMBean, MBeanRegistration, NotificationBroadcaster, NotificationEmitter

public class StandardEmitterMBean
extends StandardMBean
implements NotificationEmitter

一個其管理介面由 Java 介面上的反射確定並且可以發送通知的 MBean。

以下範例顯示了如何使用公共建構子 StandardEmitterMBean(implementation, mbeanInterface, emitter) 創建一個 MBean,使之能使用實作類別名稱 Impl、介面 Intf(對於當前標準 MBean)定義的管理介面,以及介面 NotificationEmitter 的實作來發送訊息。該範例使用類別 NotificationBroadcasterSupport 作為介面 NotificationEmitter 的實作。

     MBeanServer mbs;
     ...
     final String[] types = new String[] {"sun.disc.space","sun.disc.alarm"};
     final MBeanNotificationInfo info = new MBeanNotificationInfo(
                                          types,
                                          Notification.class.getName(),
                                          "Notification about disc info.");
     final NotificationEmitter emitter = 
                    new NotificationBroadcasterSupport(info);

     final Intf impl = new Impl(...);
     final Object mbean = new StandardEmitterMBean(
                                     impl, Intf.class, emitter);
     mbs.registerMBean(mbean, objectName);
     

從以下版本開始:
1.6
另請參見:
StandardMBean

建構子摘要
protected StandardEmitterMBean(Class<?> mbeanInterface, boolean isMXBean, NotificationEmitter emitter)
          建構一個 MBean,其管理介面由 mbeanInterface 指定,並且其中的通知由給定的 NotificationEmitter 處理。
protected StandardEmitterMBean(Class<?> mbeanInterface, NotificationEmitter emitter)
          建構一個 MBean,其管理介面由 mbeanInterface 指定,並且其中的通知由給定的 NotificationEmitter 處理。
  StandardEmitterMBean(T implementation, Class<T> mbeanInterface, boolean isMXBean, NotificationEmitter emitter)
          建構一個 MBean,其管理介面由 mbeanInterface 使用給定實作指定,並且其中的通知由給定的 NotificationEmitter 處理。
  StandardEmitterMBean(T implementation, Class<T> mbeanInterface, NotificationEmitter emitter)
          建構一個 MBean,其管理介面由 mbeanInterface 使用給定實作指定,並且其中的通知由給定的 NotificationEmitter 處理。
 
方法摘要
 void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
          在此 MBean 中添加一個偵聽器。
 MBeanNotificationInfo[] getNotificationInfo()
          返回一個陣列,指示此 MBean 可能發送的每個通知的 Java 類別名和通知型別。
 void removeNotificationListener(NotificationListener listener)
          從此 MBean 移除一個偵聽器。
 void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
          從此 MBean 移除一個偵聽器。
 void sendNotification(Notification n)
          發送通知。
 
從類別 javax.management.StandardMBean 繼承的方法
cacheMBeanInfo, getAttribute, getAttributes, getCachedMBeanInfo, getClassName, getConstructors, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getImpact, getImplementation, getImplementationClass, getMBeanInfo, getMBeanInterface, getParameterName, getParameterName, invoke, postDeregister, postRegister, preDeregister, preRegister, setAttribute, setAttributes, setImplementation
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

StandardEmitterMBean

public StandardEmitterMBean(T implementation,
                            Class<T> mbeanInterface,
                            NotificationEmitter emitter)

建構一個 MBean,其管理介面由 mbeanInterface 使用給定實作指定,並且其中的通知由給定的 NotificationEmitter 處理。結果 MBean 通過將其方法轉發給 emitter 來實作 NotificationEmitter 介面。這是合法的,並且在將 implementationemitter 用於相同物件時很有用。

如果 emitterNotificationBroadcasterSupport 的實例,則該 MBean 的 sendNotification 方法將調用 emitter.sendNotification

由新 MBean 上的 getNotificationInfo() 返回的陣列是進行建構時由 emitter.getNotificationInfo() 返回的陣列的副本。如果由 emitter.getNotificationInfo() 返回的陣列之後發生變化,那麼這種變化不會影響到此物件的 getNotificationInfo()

參數:
implementation - MBean 介面的實作。
mbeanInterface - Standard MBean 介面。
emitter - 將處理通知的物件。
拋出:
IllegalArgumentException - 如果 mbeanInterface 不遵守管理介面的 JMX 設計網要,或者給定的 implementation 沒有實作指定的介面,抑或 emitter 為 null。

StandardEmitterMBean

public StandardEmitterMBean(T implementation,
                            Class<T> mbeanInterface,
                            boolean isMXBean,
                            NotificationEmitter emitter)

建構一個 MBean,其管理介面由 mbeanInterface 使用給定實作指定,並且其中的通知由給定的 NotificationEmitter 處理。此建構子可以用於建構 Standard MBean 或 MXBean。結果 MBean 通過將其方法轉發給 emitter 來實作 NotificationEmitter 介面。這是合法的,並且在將 implementationemitter 用於相同物件時很有用。

如果 emitterNotificationBroadcasterSupport 的實例,則該 MBean 的 sendNotification 方法將調用 emitter.sendNotification

由新 MBean 上的 getNotificationInfo() 返回的陣列是進行建構時由 emitter.getNotificationInfo() 返回的陣列的副本。如果由 emitter.getNotificationInfo() 返回的陣列之後發生變化,那麼這種變化不會影響到此物件的 getNotificationInfo()

參數:
implementation - MBean 介面的實作。
mbeanInterface - Standard MBean 介面。
isMXBean - 如果為 true,則 mbeanInterface 參數會對 MXBean 介面進行命名,並且結果 MBean 是一個 MXBean。
emitter - 將處理通知的物件。
拋出:
IllegalArgumentException - 如果 mbeanInterface 不遵守管理介面的 JMX 設計網要,或者給定的 implementation 沒有實作指定的介面,抑或 emitter 為 null。

StandardEmitterMBean

protected StandardEmitterMBean(Class<?> mbeanInterface,
                               NotificationEmitter emitter)

建構一個 MBean,其管理介面由 mbeanInterface 指定,並且其中的通知由給定的 NotificationEmitter 處理。結果 MBean 通過將其方法轉發給 emitter 來實作 NotificationEmitter 介面。

如果 emitterNotificationBroadcasterSupport 的實例,則該 MBean 的 sendNotification 方法將調用 emitter.sendNotification

由新 MBean 上的 getNotificationInfo() 返回的陣列是進行建構時由 emitter.getNotificationInfo() 返回的陣列的副本。如果由 emitter.getNotificationInfo() 返回的陣列之後發生變化,那麼這種變化不會影響到此物件的 getNotificationInfo()

此建構子必須從實作給定 mbeanInterface 的子類別調用。

參數:
mbeanInterface - StandardMBean 介面。
emitter - 將處理通知的物件。
拋出:
IllegalArgumentException - 如果 mbeanInterface 不遵守管理介面的 JMX 設計網要,或者給定的 this 沒有實作指定的介面,抑或 emitter 為 null。

StandardEmitterMBean

protected StandardEmitterMBean(Class<?> mbeanInterface,
                               boolean isMXBean,
                               NotificationEmitter emitter)

建構一個 MBean,其管理介面由 mbeanInterface 指定,並且其中的通知由給定的 NotificationEmitter 處理。此建構子可以用於建構 Standard MBean 或 MXBean。結果 MBean 通過將其方法轉發給 emitter 來實作 NotificationEmitter 介面。

如果 emitterNotificationBroadcasterSupport 的實例,則該 MBean 的 sendNotification 方法將調用 emitter.sendNotification

由新 MBean 上的 getNotificationInfo() 返回的陣列是進行建構時由 emitter.getNotificationInfo() 返回的陣列的副本。如果由 emitter.getNotificationInfo() 返回的陣列之後發生變化,那麼這種變化不會影響到此物件的 getNotificationInfo()

此建構子必須從實作給定 mbeanInterface 的子類別調用。

參數:
mbeanInterface - StandardMBean 介面。
isMXBean - 如果為 true,則 mbeanInterface 參數會對 MXBean 介面進行命名,並且結果 MBean 是一個 MXBean。
emitter - 將處理通知的物件。
拋出:
IllegalArgumentException - 如果 mbeanInterface 不遵守管理介面的 JMX 設計網要,或者給定的 this 沒有實作指定的介面,抑或 emitter 為 null。
方法詳細資訊

removeNotificationListener

public void removeNotificationListener(NotificationListener listener)
                                throws ListenerNotFoundException
從介面 NotificationBroadcaster 複製的描述
從此 MBean 移除一個偵聽器。如果已向不同的 handback 物件或通知過濾器註冊了該偵聽器,則移除與該偵聽器有關的所有項。

指定者:
介面 NotificationBroadcaster 中的 removeNotificationListener
參數:
listener - 以前添加到此 MBean 中的偵聽器。
拋出:
ListenerNotFoundException - 如果沒有在 MBean 中註冊該偵聽器。
另請參見:
NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object), NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

removeNotificationListener

public void removeNotificationListener(NotificationListener listener,
                                       NotificationFilter filter,
                                       Object handback)
                                throws ListenerNotFoundException
從介面 NotificationEmitter 複製的描述

從此 MBean 移除一個偵聽器。該 MBean 必須有一個與給定 listenerfilterhandback 參數完全比對的偵聽器。如果有多個此類別偵聽器,則只移除一個偵聽器。

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

指定者:
介面 NotificationEmitter 中的 removeNotificationListener
參數:
listener - 以前添加到此 MBean 中的偵聽器。
filter - 添加偵聽器時指定的過濾器。
handback - 添加偵聽器時指定的回送。
拋出:
ListenerNotFoundException - 如果沒有在該 MBean 中註冊偵聽器,或者沒有用給定的過濾器和回送註冊它。

addNotificationListener

public void addNotificationListener(NotificationListener listener,
                                    NotificationFilter filter,
                                    Object handback)
從介面 NotificationBroadcaster 複製的描述
在此 MBean 中添加一個偵聽器。

指定者:
介面 NotificationBroadcaster 中的 addNotificationListener
參數:
listener - 將處理廣播者發出的通知的偵聽器物件。
filter - 過濾器物件。如果 filter 為 null,則處理通知前不執行過濾。
handback - 發出通知時要發送回偵聽器的不透明物件。Notification 廣播者物件不能使用此物件。應該將通知不作更改地重新發送到偵聽器。
另請參見:
NotificationBroadcaster.removeNotificationListener(javax.management.NotificationListener)

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()
從介面 NotificationBroadcaster 複製的描述

返回一個陣列,指示此 MBean 可能發送的每個通知的 Java 類別名和通知型別。

MBean 發送此陣列中未描述的通知是合法的。但是,某些 MBean 伺服器的客戶端要想正常運行,可能要依賴完整的陣列。

指定者:
介面 NotificationBroadcaster 中的 getNotificationInfo
返回:
可能的通知陣列。

sendNotification

public void sendNotification(Notification n)

發送通知。

如果建構子的 emitter 參數是一個 NotificationBroadcasterSupport 實例,則此方法將調用 emitter.sendNotification

參數:
n - 要發送的通知。
拋出:
ClassCastException - 如果建構子的 emitter 參數不是 NotificationBroadcasterSupport

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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