- java.lang.Object
-
- javax.management.StandardMBean
-
- javax.management.StandardEmitterMBean
-
- All Implemented Interfaces:
-
DynamicMBean
,MBeanRegistration
,NotificationBroadcaster
,NotificationEmitter
public class StandardEmitterMBean extends StandardMBean implements NotificationEmitter
一个MBean,其管理接口由Java接口上的反射决定,并发出通知。
以下示例显示了如何使用公共构造函数
StandardEmitterMBean(implementation, mbeanInterface, emitter)
创建使用任何实现类名称Impl发布通知的MBean,通过任何接口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
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 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
处理。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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)
发送通知。-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from class 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
-
-
-
-
构造方法详细信息
-
StandardEmitterMBean
public StandardEmitterMBean(T implementation, Class<T> mbeanInterface, NotificationEmitter emitter)
制作一个MBean,其管理界面由
mbeanInterface
指定,给定的实现和通知由给定的NotificationEmitter
处理。 结果MBean通过将其方法转发到emitter
来实现NotificationEmitter
接口。 对于implementation
和emitter
是同一个对象是合法有用的。如果
emitter
是实例NotificationBroadcasterSupport
则MBean的sendNotification
方法将调用emitter.
sendNotification
。通过返回的数组
getNotificationInfo()
在新的MBean是返回数组的副本emitter.
getNotificationInfo()
在施工时间。 如果由emitter.getNotificationInfo()
返回的数组稍后更改,那将对此对象的getNotificationInfo()
没有影响。- 参数类型
-
T
- MBean的实现类型 - 参数
-
implementation
- MBean接口的实现。 -
mbeanInterface
- 一个标准的MBean接口。 -
emitter
- 将处理通知的对象。 - 异常
-
IllegalArgumentException
- 如果mbeanInterface
不遵循管理接口的JMX设计模式,或者给定的implementation
未实现指定的接口,或者如果emitter
为空。
-
StandardEmitterMBean
public StandardEmitterMBean(T implementation, Class<T> mbeanInterface, boolean isMXBean, NotificationEmitter emitter)
制作一个MBean,其管理界面由
mbeanInterface
指定,给定的实现和通知由给定的NotificationEmitter
处理。 此构造函数可用于创建标准MBean或MXBean。 结果MBean通过将其方法转发到emitter
来实现NotificationEmitter
接口。 对于implementation
和emitter
是相同的对象是合法有用的。如果
emitter
是实例NotificationBroadcasterSupport
则MBean的sendNotification
方法将调用emitter.
sendNotification
。通过返回的数组
getNotificationInfo()
在新的MBean是返回数组的副本emitter.
getNotificationInfo()
在施工时间。 如果由emitter.getNotificationInfo()
返回的数组稍后更改,那将对此对象的getNotificationInfo()
没有影响。- 参数类型
-
T
- MBean的实现类型 - 参数
-
implementation
- MBean接口的实现。 -
mbeanInterface
- 一个标准的MBean接口。 -
isMXBean
- 如果为true,那么mbeanInterface
参数命名一个MXBean接口,最终的MBean是一个MXBean。 -
emitter
- 将处理通知的对象。 - 异常
-
IllegalArgumentException
- 如果mbeanInterface
不遵循管理接口的JMX设计模式,或者给定的implementation
未实现指定的接口,或者如果emitter
为空。
-
StandardEmitterMBean
protected StandardEmitterMBean(Class<?> mbeanInterface, NotificationEmitter emitter)
制作一个MBean,其管理界面由
mbeanInterface
指定,通知由给定的NotificationEmitter
处理。 结果MBean通过将其方法转发到emitter
来实现NotificationEmitter
接口。如果
emitter
是实例NotificationBroadcasterSupport
则MBean的sendNotification
方法将调用emitter.
sendNotification
。通过返回的数组
getNotificationInfo()
在新的MBean是返回数组的副本emitter.
getNotificationInfo()
在施工时间。 如果由emitter.getNotificationInfo()
返回的数组稍后更改,那将对此对象的getNotificationInfo()
没有影响。必须从实现给定的
mbeanInterface
的子类调用此构造函数。- 参数
-
mbeanInterface
- 一个StandardMBean界面。 -
emitter
- 将处理通知的对象。 - 异常
-
IllegalArgumentException
- 如果mbeanInterface
不遵循管理接口的JMX设计模式,或者如果this
未实现指定的接口,或者如果emitter
为空。
-
StandardEmitterMBean
protected StandardEmitterMBean(Class<?> mbeanInterface, boolean isMXBean, NotificationEmitter emitter)
制作一个MBean,其管理界面由
mbeanInterface
指定,通知由给定的NotificationEmitter
处理。 此构造函数可用于创建标准MBean或MXBean。 结果MBean通过将其方法转发到emitter
来实现NotificationEmitter
接口。如果
emitter
是实例NotificationBroadcasterSupport
则MBean的sendNotification
方法将调用emitter.
sendNotification
。通过返回的数组
getNotificationInfo()
在新的MBean是返回数组的副本emitter.
getNotificationInfo()
在施工时间。 如果由emitter.getNotificationInfo()
返回的数组稍后更改,那么对该对象的getNotificationInfo()
不会有任何影响。必须从实现给定的
mbeanInterface
的子类调用此构造函数。- 参数
-
mbeanInterface
- 一个StandardMBean界面。 -
isMXBean
- 如果为true,则mbeanInterface
参数命名一个MXBean接口,其结果MBean是MXBean。 -
emitter
- 将处理通知的对象。 - 异常
-
IllegalArgumentException
- 如果mbeanInterface
不遵循管理接口的JMX设计模式,或者如果this
未实现指定的接口,或者如果emitter
为空。
-
-
方法详细信息
-
removeNotificationListener
public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
描述从接口NotificationBroadcaster
复制从这个MBean中删除一个监听器。 如果侦听器已经注册了不同的回传对象或通知过滤器,则与侦听器对应的所有条目都将被删除。- Specified by:
-
removeNotificationListener
在接口NotificationBroadcaster
- 参数
-
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必须有一个与给定匹配的侦听
listener
,filter
,并handback
参数。 如果有多个这样的听众,只有一个被删除。当且仅当在要删除的侦听器中为空时,
filter
和handback
参数可能为null。- Specified by:
-
removeNotificationListener
在接口NotificationEmitter
- 参数
-
listener
- 以前添加到此MBean的侦听器。 -
filter
- 添加侦听器时指定的过滤器。 -
handback
- 添加侦听器时指定的handback
。 - 异常
-
ListenerNotFoundException
- 监听器未注册到MBean,或者没有向给定的过滤器和回传注册。
-
addNotificationListener
public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
说明从界面NotificationBroadcaster
复制添加一个监听器到这个MBean。- Specified by:
-
addNotificationListener
在接口NotificationBroadcaster
- 参数
-
listener
- 将处理广播公司发出的通知的侦听器对象。 -
filter
- 过滤器对象。 如果过滤器为空,则在处理通知之前不会执行过滤。 -
handback
- 发出通知时要发送回侦听器的不透明对象。 该通知广播对象无法使用此对象。 通知发送者应该重新发送更改。 - 另请参见:
-
NotificationBroadcaster.removeNotificationListener(javax.management.NotificationListener)
-
getNotificationInfo
public MBeanNotificationInfo[] getNotificationInfo()
说明从接口NotificationBroadcaster
复制返回一个数组,指示MBean可能发送的每个通知,通知的Java类的名称和通知类型。
MBean发送不在此阵列中描述的通知并不是非法的。 但是,MBean服务器的某些客户端可能依赖于正确运行的阵列。
- Specified by:
-
getNotificationInfo
在接口NotificationBroadcaster
- 结果
- 可能通知的数组。
-
sendNotification
public void sendNotification(Notification n)
发送通知。
如果
emitter
参数构造函数是实例NotificationBroadcasterSupport
,则此方法将调用emitter.
sendNotification
。- 参数
-
n
- 发送通知。 - 异常
-
ClassCastException
- 如果构造函数的emitter
参数不是NotificationBroadcasterSupport
。
-
-