Module java.management
Package javax.management

Class 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
参见:
  • Constructor Details

    • StandardEmitterMBean

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

      创建一个MBean,其管理接口由mbeanInterface指定,具有给定的实现,并且通知由给定的NotificationEmitter处理。生成的MBean通过将其方法转发到emitter来实现NotificationEmitter接口。对于emitterNotificationBroadcasterSupport的实例,则MBean的sendNotification方法将调用emitter.sendNotification

      新MBean上由getNotificationInfo()返回的数组是在构造时由emitter.getNotificationInfo()返回的数组的副本。如果emitter.getNotificationInfo()返回的数组稍后更改,那将不会影响此对象的getNotificationInfo()

      类型参数:
      T - MBean的实现类型
      参数:
      implementation - MBean接口的实现。
      mbeanInterface - 标准MBean接口。
      emitter - 将处理通知的对象。
      抛出:
      IllegalArgumentException - 如果mbeanInterface不遵循管理接口的JMX设计模式,或者给定的implementation未实现指定的接口,或者emitter为null。
    • StandardEmitterMBean

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

      创建一个MBean,其管理接口由mbeanInterface指定,具有给定的实现,并且通知由给定的NotificationEmitter处理。此构造函数可用于创建标准MBean或MXBean。生成的MBean通过将其方法转发到emitter来实现NotificationEmitter接口。对于emitterNotificationBroadcasterSupport的实例,则MBean的sendNotification方法将调用emitter.sendNotification

      新MBean上由getNotificationInfo()返回的数组是在构造时由emitter.getNotificationInfo()返回的数组的副本。如果emitter.getNotificationInfo()返回的数组稍后更改,那将不会影响此对象的getNotificationInfo()

      类型参数:
      T - MBean的实现类型
      参数:
      implementation - MBean接口的实现。
      mbeanInterface - 标准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 - 标准MBean接口。
      emitter - 将处理通知的对象。
      抛出:
      IllegalArgumentException - 如果mbeanInterface不遵循管理接口的JMX设计模式,或者this未实现指定的接口,或者emitter为null。
    • StandardEmitterMBean

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

      创建一个MBean,其管理接口由mbeanInterface指定,通知由给定的NotificationEmitter处理。此构造函数可用于创建标准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。
  • Method Details