-
- All Superinterfaces:
-
NotificationBroadcaster
- All Known Subinterfaces:
-
ModelMBean
- 所有已知实现类:
-
RequiredModelMBean
public interface ModelMBeanNotificationBroadcaster extends NotificationBroadcaster
此接口必须由ModelMBeans实现。 每个JMX代理都必须附带此接口的实现。希望可管理的Java资源使用MBeanServer的createMBean方法实例化ModelMBean。 然后,资源为ModelMBean实例设置ModelMBeanInfo(带有描述符)。 可以从MBean,连接器/适配器(如其他MBean)访问通过ModelMBean的ModelMBeanInfo公开的属性和操作。 通过ModelMBeanInfo描述符,可以定义托管应用程序中的值和方法,并将其映射到ModelMBean的属性和操作。 此映射可以在开发期间在XML格式的文件中定义,也可以在运行时以动态和编程方式定义。
在MBeanServer中实例化的每个ModelMBean都变得易于管理:其属性和操作可通过连接到该MBeanServer的连接器/适配器远程访问。 除非符合JMX的MBean,否则无法在MBeanServer中注册Java对象。 通过实例化ModelMBean,可以保证MBean的有效性。
必须在每个公共方法上抛出MBeanException和RuntimeOperationsException。 这允许从分布式通信(RMI,EJB等)中包装异常。 除了在规范和javadoc中描述的场景之外,实现不必抛出这些异常。
- 从以下版本开始:
- 1.5
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 void
addAttributeChangeNotificationListener(NotificationListener listener, String attributeName, Object handback)
将实现NotificationListener接口的对象注册为侦听器。void
removeAttributeChangeNotificationListener(NotificationListener listener, String attributeName)
从RequiredModelMBean中删除attributeChangeNotifications的侦听器。void
sendAttributeChangeNotification(AttributeChangeNotification notification)
发送一个attributeChangeNotification,该属性传递给ModelMBean上已注册的attributeChangeNotification侦听器。void
sendAttributeChangeNotification(Attribute oldValue, Attribute newValue)
将包含属性的旧值和新值的attributeChangeNotification发送到ModelMBean上已注册的AttributeChangeNotification侦听器。void
sendNotification(String ntfyText)
发送一个Notification,其中包含传递给ModelMBean上已注册的Notification侦听器的文本字符串。void
sendNotification(Notification ntfyObj)
发送通知,该通知作为jmx.modelmbean.generic通知传递给ModelMBean上已注册的通知侦听器。-
声明方法的接口 javax.management.NotificationBroadcaster
addNotificationListener, getNotificationInfo, removeNotificationListener
-
-
-
-
方法详细信息
-
sendNotification
void sendNotification(Notification ntfyObj) throws MBeanException, RuntimeOperationsException
发送通知,该通知作为jmx.modelmbean.generic通知传递给ModelMBean上已注册的通知侦听器。- 参数
-
ntfyObj
- 要传递给侦听器对象的“handleNotification”方法的通知。 - 异常
-
MBeanException
- 包装分布式通信异常。 -
RuntimeOperationsException
- 包装IllegalArgumentException:参数中传递的Notification对象为null。
-
sendNotification
void sendNotification(String ntfyText) throws MBeanException, RuntimeOperationsException
发送一个Notification,其中包含传递给ModelMBean上已注册的Notification侦听器的文本字符串。- 参数
-
ntfyText
- 要在通知中传递给侦听器对象的“handleNotification”方法的文本。 构造的通知将是:键入“jmx.modelmbean.generic”源此ModelMBean实例序列1 - 异常
-
MBeanException
- 包装分布式通信异常。 -
RuntimeOperationsException
- 包装IllegalArgumentException:参数中传递的Notification文本字符串为null。
-
sendAttributeChangeNotification
void sendAttributeChangeNotification(AttributeChangeNotification notification) throws MBeanException, RuntimeOperationsException
发送一个attributeChangeNotification,该属性传递给ModelMBean上已注册的attributeChangeNotification侦听器。- 参数
-
notification
- 要传递给侦听器对象的“handleNotification”方法的通知。 - 异常
-
MBeanException
- 包装分布式通信异常。 -
RuntimeOperationsException
- 包装IllegalArgumentException:参数中传递的AttributeChangeNotification对象为null。
-
sendAttributeChangeNotification
void sendAttributeChangeNotification(Attribute oldValue, Attribute newValue) throws MBeanException, RuntimeOperationsException
将包含属性的旧值和新值的attributeChangeNotification发送到ModelMBean上已注册的AttributeChangeNotification侦听器。- 参数
-
oldValue
- 属性的原始值 -
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:在参数中传递的Attribute对象为null,或者参数中两个Attribute对象的名称不相同。
-
addAttributeChangeNotificationListener
void addAttributeChangeNotificationListener(NotificationListener listener, String attributeName, Object handback) throws MBeanException, RuntimeOperationsException, IllegalArgumentException
将实现NotificationListener接口的对象注册为侦听器。 当通过ModelMBean或由ModelMBean发出任何attributeChangeNotification时,将调用此对象的'handleNotification()'方法。 这不包括其他通知。 他们必须独立注册。 将为此attributeName生成AttributeChangeNotification。- 参数
-
listener
- 将处理已注册MBean发出的通知的侦听器对象。 -
attributeName
- 要接收更改通知的ModelMBean属性的名称。 如果为null,则所有属性更改都将导致发出attributeChangeNotification。 -
handback
- 发出通知时通知发送给侦听器的上下文。 - 异常
-
IllegalArgumentException
- 侦听器不能为null。 -
MBeanException
- 包装分布式通信异常。 -
RuntimeOperationsException
- 包装IllegalArgumentException参数中传递的属性名称不存在。 - 另请参见:
-
removeAttributeChangeNotificationListener(javax.management.NotificationListener, java.lang.String)
-
removeAttributeChangeNotificationListener
void removeAttributeChangeNotificationListener(NotificationListener listener, String attributeName) throws MBeanException, RuntimeOperationsException, ListenerNotFoundException
从RequiredModelMBean中删除attributeChangeNotifications的侦听器。- 参数
-
listener
- 正在处理已注册MBean发出的通知的侦听器名称。 此方法将删除与此侦听器相关的所有信息。 -
attributeName
- 侦听器不再希望接收attributeChangeNotifications的属性。 如果为null,则将删除所有attributeChangeNotifications的侦听器。 - 异常
-
ListenerNotFoundException
- 侦听器未在MBean中注册或为null。 -
MBeanException
- 包装分布式通信异常。 -
RuntimeOperationsException
- 包装IllegalArgumentException如果inAttributeName参数与属性名称不对应。 - 另请参见:
-
addAttributeChangeNotificationListener(javax.management.NotificationListener, java.lang.String, java.lang.Object)
-
-