- 所有已知的实现类:
-
ModelMBeanInfoSupport
希望成为可管理资源的Java资源使用MBeanServer的createMBean方法实例化ModelMBean。然后,资源为ModelMBean实例设置ModelMBeanInfo和描述符。通过ModelMBeanInfo为ModelMBean公开的属性、操作和通知组成管理接口,并可以从MBeans、连接器/适配器等其他MBeans访问。通过描述符,可以定义和映射托管应用程序中的值和方法到ModelMBean的属性和操作。此映射可以在开发过程中在文件中定义,也可以在运行时动态和以编程方式定义。
在MBeanServer中实例化的每个ModelMBean都变得可管理:其属性、操作和通知通过连接到该MBeanServer的连接器/适配器变得可以远程访问。Java对象除非是符合JMX的MBean,否则无法在MBeanServer中注册。通过实例化ModelMBean,资源可以确保MBean是有效的。必须在每个公共方法上抛出MBeanException和RuntimeOperationsException。这允许从分布式通信(RMI、EJB等)中包装异常。
- 自1.5版本起:
- 1.5
-
Method Summary
Modifier and TypeMethodDescriptionclone()
创建并返回此对象的副本。getAttribute
(String inName) 返回按名称请求的ModelMBeanAttributeInfo。返回为管理公开的属性列表。返回由此MBeanInfo
描述的MBean的Java类的名称。返回MBean的公共构造函数列表。返回MBean的人类可读描述。getDescriptor
(String inDescriptorName, String inDescriptorType) 返回按名称和描述符类型请求的描述符。getDescriptors
(String inDescriptorType) 返回由类型为inDescriptorType的ModelMBeanInfo的所有描述符组成的描述符数组。返回包含MBean范围策略的ModelMBean的描述符。getNotification
(String inName) 返回按名称请求的ModelMBeanNotificationInfo。返回由MBean发出的通知列表。getOperation
(String inName) 返回按名称请求的ModelMBeanOperationInfo。返回MBean的操作列表。void
setDescriptor
(Descriptor inDescriptor, String inDescriptorType) 为ModelMBean设置类型为inDescriptorType的info数组中的描述符。void
setDescriptors
(Descriptor[] inDescriptors) 添加或替换ModelMBeanInfo中的描述符。void
setMBeanDescriptor
(Descriptor inDescriptor) 设置ModelMBean的描述符。
-
Method Details
-
getDescriptors
Descriptor[] getDescriptors(String inDescriptorType) throws MBeanException, RuntimeOperationsException 返回由类型为inDescriptorType的ModelMBeanInfo的所有描述符组成的描述符数组。- 参数:
-
inDescriptorType
- 必须为要返回的描述符设置的descriptorType字段的值。必须为"mbean"、"attribute"、"operation"、"constructor"或"notification"。如果为null或空,则将返回所有类型。 - 返回:
- 如果类型为inDescriptorType,则包含ModelMBean的所有描述符的描述符数组。
- 抛出:
-
MBeanException
- 包装了分布式通信异常。 -
RuntimeOperationsException
- 当参数中的descriptorType不是"mbean"、"attribute"、"operation"、"constructor"、"notification"、空或null时,包装了IllegalArgumentException。 - 参见:
-
setDescriptors
添加或替换ModelMBeanInfo中的描述符。- 参数:
-
inDescriptors
- 要设置在ModelMBeanInfo中的描述符。列表中的空元素将被忽略。所有描述符必须具有名称和descriptorType字段。 - 抛出:
-
RuntimeOperationsException
- 对于空或无效描述符,包装了IllegalArgumentException。 -
MBeanException
- 包装了分布式通信异常。 - 参见:
-
getDescriptor
Descriptor getDescriptor(String inDescriptorName, String inDescriptorType) throws MBeanException, RuntimeOperationsException 返回按名称和描述符类型请求的描述符。- 参数:
-
inDescriptorName
- 描述符的名称。 -
inDescriptorType
- 请求的描述符类型。如果为null或空,则将搜索所有类型。有效类型为'mbean'、'attribute'、'constructor'、'operation'和'notification'。此值将等于返回的描述符中的'descriptorType'字段。 - 返回:
- 包含具有相同名称和descriptorType的ModelMBean的描述符。如果未找到描述符,则返回null。
- 抛出:
-
MBeanException
- 包装了分布式通信异常。 -
RuntimeOperationsException
- 对于null描述符名称或null或无效类型,包装了IllegalArgumentException。类型必须为"mbean"、"attribute"、"constructor"、"operation"或"notification"。 - 参见:
-
setDescriptor
void setDescriptor(Descriptor inDescriptor, String inDescriptorType) throws MBeanException, RuntimeOperationsException 为ModelMBean设置类型为inDescriptorType的info数组中的描述符。将调用相应ModelMBean*Info的setDescriptor方法来设置指定的描述符。- 参数:
-
inDescriptor
- 要设置在ModelMBean中的描述符。它不能为null。所有描述符必须具有名称和descriptorType字段。 -
inDescriptorType
- 要设置的描述符类型。如果为null,则使用描述符中的descriptorType字段。如果指定了此值,则必须在描述符中的descriptorType字段中设置此值。必须为"mbean"、"attribute"、"constructor"、"operation"或"notification"。 - 抛出:
-
RuntimeOperationsException
- 对于非法或null参数,或者如果描述符的名称字段在相应的MBeanAttributeInfo、MBeanConstructorInfo或MBeanNotificationInfo或MBeanOperationInfo中找不到时,包装了IllegalArgumentException。 -
MBeanException
- 包装了分布式通信异常。 - 参见:
-
getMBeanDescriptor
返回包含MBean范围策略的ModelMBean的描述符。此描述符包含有关MBean的元数据以及持久性和缓存的默认策略。
描述符中定义的字段包括但不限于以下内容。请注意,当此表中的类型为Number时,也可以使用Long的十进制表示形式的String。
名称 类型 含义 name String MBean名称。 descriptorType String 必须为"mbean"。 displayName String 用于显示的MBean名称。 persistPolicy String 其中之一:OnUpdate|OnTimer|NoMoreOftenThan|OnUnregister|Always|Never。请参阅JMX规范文档中的“MBean描述符字段”部分。 persistLocation String 应将MBean持久化的完全限定目录名称(如果适用)。 persistFile String 应将MBean持久化到的文件名。 persistPeriod Number 对于OnTime和NoMoreOftenThan PersistPolicy,持久化周期的频率(以秒为单位)。 currencyTimeLimit Number 缓存值有效的时间:<0表示永不,=0表示始终有效,>0表示秒。 log String t:记录所有通知,f:不记录任何通知。 logfile String 用于记录事件的完全限定文件名。 visibility Number 1-4,其中1:始终可见,4:很少可见。 export String 用于导出/公开此MBean的名称,以便其他JMX代理可以找到。 presentationString String XML格式的字符串,允许将数据的呈现与MBean关联。 默认描述符为:name=className,descriptorType="mbean",displayName=className,persistPolicy="never",log="F",visibility="1"。如果描述符不包含所有这些字段,则将使用这些默认值添加这些字段。
注意:由于此规范先前版本中的不一致性,建议不要对
currencyTimeLimit
使用负值或零值。要指示缓存值永远无效,请省略currencyTimeLimit
字段。要指示它始终有效,请为此字段使用一个非常大的数字。- 返回:
- MBean描述符。
- 抛出:
-
MBeanException
- 封装了一个分布式通信异常。 -
RuntimeOperationsException
- 在获取描述符时发生了RuntimeException
。 - 参见:
-
setMBeanDescriptor
设置ModelMBean的描述符。此描述符包含有关MBean的默认、全局元数据以及持久性和缓存的默认策略。此操作完全替换描述符,不进行合并。如果要设置的描述符为null,则将创建默认描述符。默认描述符为:name=className,descriptorType="mbean",displayName=className,persistPolicy="never",log="F",visibility="1"。如果描述符不包含所有这些字段,则将使用这些默认值添加这些字段。有关有效字段名称的描述,请参见getMBeanDescriptor
方法的javadoc。- 参数:
-
inDescriptor
- 要设置的描述符。 - 抛出:
-
MBeanException
- 封装了一个分布式通信异常。 -
RuntimeOperationsException
- 封装了一个无效描述符的IllegalArgumentException。 - 参见:
-
getAttribute
ModelMBeanAttributeInfo getAttribute(String inName) throws MBeanException, RuntimeOperationsException 返回按名称请求的ModelMBeanAttributeInfo。- 参数:
-
inName
- 要获取的ModelMBeanAttributeInfo的名称。如果没有为此名称存在ModelMBeanAttributeInfo,则返回null。 - 返回:
- 指定属性的属性信息,如果没有则返回null。
- 抛出:
-
MBeanException
- 封装了一个分布式通信异常。 -
RuntimeOperationsException
- 封装了一个空属性名称的IllegalArgumentException。
-
getOperation
ModelMBeanOperationInfo getOperation(String inName) throws MBeanException, RuntimeOperationsException 返回按名称请求的ModelMBeanOperationInfo。- 参数:
-
inName
- 要获取的ModelMBeanOperationInfo的名称。如果没有为此名称存在ModelMBeanOperationInfo,则返回null。 - 返回:
- 指定操作的操作信息,如果没有则返回null。
- 抛出:
-
MBeanException
- 封装了一个分布式通信异常。 -
RuntimeOperationsException
- 封装了一个空操作名称的IllegalArgumentException。
-
getNotification
ModelMBeanNotificationInfo getNotification(String inName) throws MBeanException, RuntimeOperationsException 返回按名称请求的ModelMBeanNotificationInfo。- 参数:
-
inName
- 要获取的ModelMBeanNotificationInfo的名称。如果没有为此名称存在ModelMBeanNotificationInfo,则返回null。 - 返回:
- 指定通知的信息,如果没有则返回null。
- 抛出:
-
MBeanException
- 封装了一个分布式通信异常。 -
RuntimeOperationsException
- 封装了一个空通知名称的IllegalArgumentException。
-
clone
Object clone()创建并返回此对象的副本。- 返回:
- 此对象的副本
-
getAttributes
MBeanAttributeInfo[] getAttributes()返回用于管理的属性列表。每个属性由一个MBeanAttributeInfo
对象描述。- 返回:
-
一个
MBeanAttributeInfo
对象数组。
-
getClassName
String getClassName()返回由此MBeanInfo
描述的MBean的Java类名称。- 返回:
- Java类名称。
-
getConstructors
MBeanConstructorInfo[] getConstructors()返回MBean的公共构造函数列表。每个构造函数由一个MBeanConstructorInfo
对象描述。- 返回:
-
一个
MBeanConstructorInfo
对象数组。
-
getDescription
String getDescription()返回MBean的人类可读描述。- 返回:
- 描述。
-
getNotifications
MBeanNotificationInfo[] getNotifications()返回由MBean发出的通知列表。每个通知由一个MBeanNotificationInfo
对象描述。除了应用程序指定的任何通知外,ModelMBean始终还可以发送两个额外的通知:
- 一个具有描述符名称"GENERIC"和displayName"jmx.modelmbean.generic"的通知
- 第二个是具有描述符名称"ATTRIBUTE_CHANGE"和displayName"jmx.attribute.change"的标准属性更改通知
- 返回:
-
一个
MBeanNotificationInfo
对象数组。
-
getOperations
MBeanOperationInfo[] getOperations()返回MBean的操作列表。每个操作由一个MBeanOperationInfo
对象描述。- 返回:
-
一个
MBeanOperationInfo
对象数组。
-