- 所有已知实现类:
-
RequiredModelMBean
public interface ModelMBean extends DynamicMBean, PersistentMBean, ModelMBeanNotificationBroadcaster
必须由ModelMBeans实现此接口。每个JMX代理都必须随附此接口的实现。
希望可管理的Java资源使用MBeanServer的createMBean方法实例化ModelMBean。然后,资源为ModelMBean实例设置ModelMBeanInfo(带有描述符)。通过ModelMBeanInfo为ModelMBean公开的属性和操作可从MBeans、连接器/适配器等其他MBeans访问。通过ModelMBeanInfo描述符,可以定义和映射托管应用程序中的值和方法到ModelMBean的属性和操作。此映射可以在开发过程中在XML格式文件中定义,也可以在运行时动态和以编程方式定义。
在MBeanServer中实例化的每个ModelMBean都变得可管理:其属性和操作通过连接到该MBeanServer的连接器/适配器变得远程可访问。除非是符合JMX标准的MBean,否则无法将Java对象注册到MBeanServer中。通过实例化ModelMBean,资源可以确保MBean是有效的。
必须在每个公共方法上抛出MBeanException和RuntimeOperationsException。这允许从分布式通信(RMI、EJB等)中包装异常。除非在规范和javadoc中描述的情况下,否则实现不必抛出这些异常。
- 自Java版本:
- 1.5
-
Method Summary
Modifier and TypeMethodDescriptionvoid
setManagedResource
(Object mr, String mr_type) 设置对象的实例句柄,用于执行此ModelMBean管理接口(MBeanInfo和描述符)中的所有方法。void
setModelMBeanInfo
(ModelMBeanInfo inModelMBeanInfo) 使用传入的ModelMBeanInfo初始化ModelMBean对象。Methods declared in interface javax.management.DynamicMBean
getAttribute, getAttributes, getMBeanInfo, invoke, setAttribute, setAttributes
Methods declared in interface javax.management.modelmbean.ModelMBeanNotificationBroadcaster
addAttributeChangeNotificationListener, removeAttributeChangeNotificationListener, sendAttributeChangeNotification, sendAttributeChangeNotification, sendNotification, sendNotification
Methods declared in interface javax.management.NotificationBroadcaster
addNotificationListener, getNotificationInfo, removeNotificationListener
Methods declared in interface javax.management.PersistentMBean
load, store
-
Method Details
-
setModelMBeanInfo
void setModelMBeanInfo(ModelMBeanInfo inModelMBeanInfo) throws MBeanException, RuntimeOperationsException 使用传入的ModelMBeanInfo初始化ModelMBean对象。只要未向MBeanServer注册,就可以在ModelMBean上设置自定义的ModelMBeanInfo。
一旦自定义并设置了ModelMBean的ModelMBeanInfo(带有描述符),就可以将ModelMBean注册到MBeanServer中。如果ModelMBean当前已注册,则此方法会抛出一个
RuntimeOperationsException
,其中包装了一个IllegalStateException
- 参数:
-
inModelMBeanInfo
- 要由ModelMBean使用的ModelMBeanInfo对象。 - 抛出:
-
MBeanException
- 包装了一个分布式通信异常。 -
RuntimeOperationsException
-- 如果传入参数中的MBeanInfo为null,则包装一个
IllegalArgumentException
- 如果ModelMBean当前已在MBeanServer中注册,则包装一个
IllegalStateException
- 如果传入参数中的MBeanInfo为null,则包装一个
-
setManagedResource
void setManagedResource(Object mr, String mr_type) throws MBeanException, RuntimeOperationsException, InstanceNotFoundException, InvalidTargetObjectTypeException 设置对象的实例句柄,用于执行此ModelMBean管理接口(MBeanInfo和描述符)中的所有方法。- 参数:
-
mr
- 被管理资源的对象 -
mr_type
- 被管理资源的引用类型。可以是:ObjectReference、Handle、IOR、EJBHandle、RMIReference。如果MBeanServer无法处理传入的mr_type,则将抛出InvalidTargetTypeException。 - 抛出:
-
MBeanException
- 对象的初始化程序抛出异常。 -
RuntimeOperationsException
- 包装了一个IllegalArgumentException:传入参数中的被管理资源类型为null。 -
InstanceNotFoundException
- 无法找到被管理资源对象 -
InvalidTargetObjectTypeException
- ModelMBean或JMX代理无法处理被管理资源类型。
-