Module java.management
Package javax.management.modelmbean
Interface ModelMBeanNotificationBroadcaster
- 所有超接口:
-
NotificationBroadcaster
- 所有已知子接口:
-
ModelMBean
- 所有已知实现类:
-
RequiredModelMBean
必须由ModelMBeans实现此接口。必须在每个JMX代理中随附此接口的实现。
希望成为可管理资源的Java资源使用MBeanServer的createMBean方法实例化ModelMBean。然后,资源为ModelMBean实例设置ModelMBeanInfo(带有描述符)。通过ModelMBeanInfo公开的属性和操作,可以从MBeans、连接器/适配器等其他MBeans访问ModelMBean。通过ModelMBeanInfo描述符,可以定义和映射托管应用程序中的值和方法到ModelMBean的属性和操作。此映射可以在开发过程中在XML格式文件中定义,也可以在运行时动态和以编程方式定义。
在MBeanServer中实例化的每个ModelMBean都变得可管理:其属性和操作通过连接到该MBeanServer的连接器/适配器变得远程可访问。除非是符合JMX的MBean,否则无法将Java对象注册到MBeanServer中。通过实例化ModelMBean,资源可以确保MBean是有效的。
必须在每个公共方法上抛出MBeanException和RuntimeOperationsException。这允许从分布式通信(RMI、EJB等)中包装异常。除非在规范和javadoc中描述的情况下,否则实现不必抛出这些异常。
- 自版本:
- 1.5
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addAttributeChangeNotificationListener
(NotificationListener listener, String attributeName, Object handback) 将实现NotificationListener接口的对象注册为侦听器。void
removeAttributeChangeNotificationListener
(NotificationListener listener, String attributeName) 从RequiredModelMBean中删除属性更改通知的侦听器。void
sendAttributeChangeNotification
(AttributeChangeNotification notification) 将传入的属性更改通知发送到ModelMBean上注册的属性更改通知侦听器。void
sendAttributeChangeNotification
(Attribute oldValue, Attribute newValue) 将包含属性的旧值和新值的属性更改通知发送到ModelMBean上注册的AttributeChangeNotification侦听器。void
sendNotification
(String ntfyText) 将包含传入的文本字符串的通知发送到ModelMBean上注册的通知侦听器。void
sendNotification
(Notification ntfyObj) 将传入的通知作为jmx.modelmbean.generic通知发送到ModelMBean上注册的通知侦听器。Methods declared in interface javax.management.NotificationBroadcaster
addNotificationListener, getNotificationInfo, removeNotificationListener
-
Method Details
-
sendNotification
将传入的通知作为jmx.modelmbean.generic通知发送到ModelMBean上注册的通知侦听器。- 参数:
-
ntfyObj
- 要传递给侦听器对象的'handleNotification'方法的通知。 - 抛出:
-
MBeanException
- 包装分布式通信异常。 -
RuntimeOperationsException
- 包装IllegalArgumentException:传入的Notification对象为空。
-
sendNotification
将包含传入的文本字符串的通知发送到ModelMBean上注册的通知侦听器。- 参数:
-
ntfyText
- 要传递给侦听器对象的'handleNotification'方法的文本。构造的通知将是:类型为"jmx.modelmbean.generic",源为此ModelMBean实例,序列为1。 - 抛出:
-
MBeanException
- 包装分布式通信异常。 -
RuntimeOperationsException
- 包装IllegalArgumentException:传入的通知文本字符串为空。
-
sendAttributeChangeNotification
void sendAttributeChangeNotification(AttributeChangeNotification notification) throws MBeanException, RuntimeOperationsException 将传入的属性更改通知发送到ModelMBean上注册的属性更改通知侦听器。- 参数:
-
notification
- 要传递给侦听器对象的'handleNotification'方法的通知。 - 抛出:
-
MBeanException
- 包装分布式通信异常。 -
RuntimeOperationsException
- 包装IllegalArgumentException:传入的AttributeChangeNotification对象为空。
-
sendAttributeChangeNotification
void sendAttributeChangeNotification(Attribute oldValue, Attribute newValue) throws MBeanException, RuntimeOperationsException 将包含属性的旧值和新值的属性更改通知发送到ModelMBean上注册的AttributeChangeNotification侦听器。- 参数:
-
oldValue
- 属性的原始值 -
newValue
- 属性的当前值构造的属性更改通知将是: 类型 "jmx.attribute.change" 源 此ModelMBean实例 序列 1 属性名称 oldValue.getName() 属性类型 oldValue的类 属性旧值 oldValue.getValue() 属性新值 newValue.getValue()
- 抛出:
-
MBeanException
- 包装分布式通信异常。 -
RuntimeOperationsException
- 包装IllegalArgumentException:传入的Attribute对象为空或参数中的两个Attribute对象的名称不相同。
-
addAttributeChangeNotificationListener
void addAttributeChangeNotificationListener(NotificationListener listener, String attributeName, Object handback) throws MBeanException, RuntimeOperationsException, IllegalArgumentException 将实现NotificationListener接口的对象注册为侦听器。当通过ModelMBean发出或通过ModelMBean发出任何属性更改通知时,将调用此对象的'handleNotification()'方法。这不包括其他通知。它们必须单独注册。将为此属性名称生成AttributeChangeNotification。- 参数:
-
listener
- 处理由注册的MBean发出的通知的侦听器对象。 -
attributeName
- 要接收更改通知的ModelMBean属性的名称。如果为null,则所有属性更改都将导致发出属性更改通知。 -
handback
- 在发出通知时与通知一起发送到侦听器的上下文。 - 抛出:
-
IllegalArgumentException
- 侦听器不能为空。 -
MBeanException
- 包装分布式通信异常。 -
RuntimeOperationsException
- 包装IllegalArgumentException:传入的属性名称不存在。 - 参见:
-
removeAttributeChangeNotificationListener
void removeAttributeChangeNotificationListener(NotificationListener listener, String attributeName) throws MBeanException, RuntimeOperationsException, ListenerNotFoundException 从RequiredModelMBean中删除属性更改通知的侦听器。- 参数:
-
listener
- 处理注册的MBean发出的通知的侦听器名称。此方法将删除与此侦听器相关的所有信息。 -
attributeName
- 侦听器不再希望接收属性更改通知的属性。如果为null,则侦听器将从所有属性更改通知中删除。 - 抛出:
-
ListenerNotFoundException
- 侦听器未在MBean中注册或为null。 -
MBeanException
- 包装分布式通信异常。 -
RuntimeOperationsException
- 包装IllegalArgumentException:inAttributeName参数不对应属性名称。 - 参见:
-