public interface ModelMBean
ModelMBean 必须实现此接口。此接口的实现必须与每个 JMX Agent 一起分发。
Java 资源使用 MBeanServer 的 createMBean 方法来实例化 ModelMBean,以便具有可管理性。然后该资源设置 ModelMBean 实例的 ModelMBeanInfo(带有 Descriptor)。通过 ModelMBean 的 ModelMBeanInfo 公开的属性和操作像其他 MBean 一样可以从 MBean、连接器/适配器进行访问。通过 ModelMBeanInfo Descriptor,可以定义托管应用程序中的值和方法,并可以将它们映射到 ModelMBean 的属性和操作。此映射可以在 XML 格式文件的开发过程中定义,也可以以编程方式在运行时动态定义。
在 MBeanServer 中实例化的每个 ModelMBean 都是可管理的:通过连接到该 MBeanServer 的连接器/适配器,可以远程访问其属性和操作。如果 Java 对象不是 JMX 兼容的 MBean,则它不能在 MBeanServer 中进行注册。通过实例化 ModelMBean,资源可保证 MBean 是有效的。
每个公共方法必须抛出 MBeanException 和 RuntimeOperationsException。这允许包装来自分布式通信(RMI、EJB 等)的异常。这些异常不必由实现抛出,在规范和 javadoc 中描述的情形除外。
方法摘要 | |
---|---|
void |
setManagedResource(Object mr, String mr_type) 设置对象的实例句柄,我们将根据此句柄执行此 ModelMBean 管理接口(MBeanInfo 和 Descriptor)中的所有方法。 |
void |
setModelMBeanInfo(ModelMBeanInfo inModelMBeanInfo) 使用传入的 ModelMBeanInfo 实例化 ModelMBean 对象。 |
从接口 javax.management.DynamicMBean 继承的方法 |
---|
getAttribute, getAttributes, getMBeanInfo, invoke, setAttribute, setAttributes |
从接口 javax.management.PersistentMBean 继承的方法 |
---|
load, store |
从接口 javax.management.NotificationBroadcaster 继承的方法 |
---|
addNotificationListener, getNotificationInfo, removeNotificationListener |
方法详细信息 |
---|
void setModelMBeanInfo(ModelMBeanInfo inModelMBeanInfo) throws MBeanException, RuntimeOperationsException
如果当前注册 ModelMBean,则此方法抛出包装 IllegalStateException
的 RuntimeOperationsException
inModelMBeanInfo
- ModelMBean 要使用的 ModelMBeanInfo 对象。
MBeanException
- 包装了一个分布式通信异常。
RuntimeOperationsException
-
IllegalArgumentException
。IllegalStateException
。void setManagedResource(Object mr, String mr_type) throws MBeanException, RuntimeOperationsException, InstanceNotFoundException, InvalidTargetObjectTypeException
mr
- 作为托管资源的对象
mr_type
- 托管资源的引用类型。可以为:ObjectReference、Handle、IOR、EJBHandle 和 RMIReference。如果 MBeanServer 不能处理传入的 mr_type,将抛出 InvalidTargetTypeException。
MBeanException
- 如果对象的初始化程序已抛出异常。
RuntimeOperationsException
- 如果包装了一个 IllegalArgumentException:传入参数的托管资源类型为 null。
InstanceNotFoundException
- 如果找不到托管资源对象。
InvalidTargetObjectTypeException
- 如果 ModelMBean 或 JMX Agent 不能处理托管资源类型。