public interface ModelMBeanNotificationBroadcaster
ModelMBean 必须实现此接口。此接口的实现必须与每个 JMX Agent 一起发布。
Java 资源使用 MBeanServer 的 createMBean 方法来实例化 ModelMBean,以便具有可管理性。然后该资源设置 ModelMBean 实例的 ModelMBeanInfo(带有 Descriptor)。通过 ModelMBean 的 ModelMBeanInfo 公开的属性和操作像其他 MBean 一样,可以从 MBean、连接器/适配器进行访问。通过 ModelMBeanInfo Descriptor,可以定义托管应用程序中的值和方法,并可以将它们映射到 ModelMBean 的属性和操作。此映射可以在 XML 格式的文件的开发过程中定义,也可以以编程方式在运行时动态定义。
MBeanServer 中实例化的每个 ModelMBean 都是可管理的:通过连接到该 MBeanServer 的连接器/适配器可以远程访问其属性和操作。Java 对象不能在 MBeanServer 中进行注册,除非它是 JMX 兼容的 MBean。通过实例化 ModelMBean,资源可保证 MBean 是有效的。
每个公共方法必须抛出 MBeanException 和 RuntimeOperationsException。这允许包装来自分布式通信(RMI 和 EJB 等)的异常。除规范和 javadoc 中描述的情况外,这些异常不必由实现抛出。
方法摘要 | |
---|---|
void |
addAttributeChangeNotificationListener(NotificationListener listener, String attributeName, Object handback) 注册一个将 NotificationListener 接口实现为侦听器的对象。 |
void |
removeAttributeChangeNotificationListener(NotificationListener listener, String attributeName) 从 RequiredModelMBean 移除一个 attributeChangeNotifications 的侦听器。 |
void |
sendAttributeChangeNotification(Attribute oldValue, Attribute newValue) 将包含属性的原有值和新值的 attributeChangeNotification 发送到 ModelMBean 上已注册的 AttributeChangeNotification 侦听器。 |
void |
sendAttributeChangeNotification(AttributeChangeNotification notification) 将传入的 attributeChangeNotification 发送到 ModelMBean 上已注册的 attributeChangeNotification 侦听器。 |
void |
sendNotification(Notification ntfyObj) 以 jmx.modelmbean.generic 通知形式将传入的 Notification 发送到 ModelMBean 上已注册的 Notification 侦听器。 |
void |
sendNotification(String ntfyText) 将包含传入文本字符串的 Notification 发送到 ModelMBean 上已注册的 Notification 侦听器。 |
从接口 javax.management.NotificationBroadcaster 继承的方法 |
---|
addNotificationListener, getNotificationInfo, removeNotificationListener |
方法详细信息 |
---|
void sendNotification(Notification ntfyObj) throws MBeanException, RuntimeOperationsException
ntfyObj
- 要传递给侦听器对象的 'handleNotification' 方法的通知。
MBeanException
- 包装一个分布式通信异常。
RuntimeOperationsException
- 包装一个 IllegalArgumentException:传入参数中的 Notification 对象为 null。
void sendNotification(String ntfyText) throws MBeanException, RuntimeOperationsException
ntfyText
- Notification 中要传递到侦听器对象的 'handleNotification' 方法的文本。 所构造的 Notification 将为: 类型 "jmx.modelmbean.generic" 源 此 ModelMBean 实例 序列 1
MBeanException
- 包装一个分布式通信异常。
RuntimeOperationsException
- 包装一个 IllegalArgumentException:传入参数中的 Notification 文本字符串为 null。
void sendAttributeChangeNotification(AttributeChangeNotification notification) throws MBeanException, RuntimeOperationsException
notification
- 要传递给侦听器对象的 'handleNotification' 方法的通知。
MBeanException
- 包装一个分布式通信异常。
RuntimeOperationsException
- 包装一个 IllegalArgumentException:传入参数中的 AttributeChangeNotification 对象为 null。
void sendAttributeChangeNotification(Attribute oldValue, Attribute newValue) throws MBeanException, RuntimeOperationsException
oldValue
- 属性的原始值
newValue
- 属性的当前值
所构造的 attributeChangeNotification 将为: 类型 "jmx.attribute.change" 源 此 ModelMBean 实例 序列 1 attributeName oldValue.getName() attributeType oldValue's class attributeOldValue oldValue.getValue() attributeNewValue newValue.getValue()
MBeanException
- 包装一个分布式通信异常。
RuntimeOperationsException
- 包装一个 IllegalArgumentException:传入参数中的 Attribute 对象为 null,或参数中两个 Attribute 对象的名称不同。
void addAttributeChangeNotificationListener(NotificationListener listener, String attributeName, Object handback) throws MBeanException, RuntimeOperationsException, IllegalArgumentException
listener
- 将处理由已注册的 MBean 发出的通知的侦听器对象。
attributeName
- 要为其接收更改通知的 ModelMBean 属性名称。如果参数为 null,则所有更改将导致发布 attributeChangeNotification。
handback
- 当发出通知时,要发送到带有通知的侦听器的上下文。
IllegalArgumentException
- 侦听器不可以为 null。
MBeanException
- 包装一个分布式通信异常。
RuntimeOperationsException
- 包装一个 IllegalArgumentException。传入参数中的属性名称不存在。
removeAttributeChangeNotificationListener(javax.management.NotificationListener, java.lang.String)
void removeAttributeChangeNotificationListener(NotificationListener listener, String attributeName) throws MBeanException, RuntimeOperationsException, ListenerNotFoundException
listener
- 正在处理由注册的 MBean 发出的通知的侦听器名称。此方法将移除与此侦听器相关的所有信息。
attributeName
- 侦听器不再为其接收 attributeChangeNotifications 的属性。如果为 null,则将移除所有 attributeChangeNotifications 的侦听器。
ListenerNotFoundException
- 侦听器未在 MBean 中注册,或为 null。
MBeanException
- 包装一个分布式通信异常。
RuntimeOperationsException
- 包装一个 IllegalArgumentException 如果 inAttributeName 参数没有对应一个属性名称。
addAttributeChangeNotificationListener(javax.management.NotificationListener, java.lang.String, java.lang.Object)