public interface ModelMBeanNotificationBroadcaster extends NotificationBroadcaster
希望可管理的Java资源使用MBeanServer的createMBean方法实例化ModelMBean。 资源然后设置ModelMBean实例的ModelMBeanInfo(带描述符)。 通过ModelMBeanInfo为ModelMBean公开的属性和操作可以从MBean,连接器/适配器(如其他MBean)访问。 通过ModelMBeanInfo描述符,可以将托管应用程序中的值和方法定义并映射到ModelMBean的属性和操作。 该映射可以在XML格式化文件的开发过程中进行定义,也可以在运行时以动态和编程方式定义。
在MBeanServer中实例化的每个ModelMBean变得可管理:通过连接到该MBeanServer的连接器/适配器,其属性和操作可以远程访问。 除非是符合JMX的MBean,否则不能在MBeanServer中注册Java对象。 通过实例化一个ModelMBean,资源保证MBean有效。
必须在每个公共方法上抛出MBeanException和RuntimeOperationsException。 这允许从分布式通信(RMI,EJB等)中包装异常。 除了在规范和javadoc中描述的场景之外,这些异常不必由实现抛出。
Modifier and Type | Method and Description |
---|---|
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通知传递给ModelMBean上的注册通知侦听器。
|
void |
sendNotification(String ntfyText)
发送一个通知,其中包含传递给ModelMBean上注册的通知侦听器的文本字符串。
|
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
- 将通知中传递给侦听器对象的“handleNotification”方法的文本。
构造的通知将是:键入“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
-
oldValue
的原始值
newValue
- newValue
的当前值
The constructed attributeChangeNotification will be:
type "jmx.attribute.change"
source this ModelMBean instance
sequence 1
attributeName oldValue.getName()
attributeType oldValue's class
attributeOldValue oldValue.getValue()
attributeNewValue newValue.getValue()
MBeanException
- 包装分布式通信异常。
RuntimeOperationsException
- 包裹一个IllegalArgumentException:在参数中传递的属性对象为null或参数中两个Attribute对象的名称不相同。
void addAttributeChangeNotificationListener(NotificationListener listener, String attributeName, Object handback) throws MBeanException, RuntimeOperationsException, IllegalArgumentException
listener
- 将处理由注册的MBean发出的通知的侦听器对象。
attributeName
- 要接收更改通知的ModelMBean属性的名称。
如果为null,则所有属性更改将导致发出attributeChangeNotification。
handback
- 发出通知时发送给侦听器的上下文通知。
IllegalArgumentException
- 侦听器不能为空。
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中注册或为空。
MBeanException
- 包裹分布式通信异常。
RuntimeOperationsException
- 包裹一个IllegalArgumentException如果inAttributeName参数与属性名称不对应。
addAttributeChangeNotificationListener(javax.management.NotificationListener, java.lang.String, java.lang.Object)