包 javax.management.openmbean
提供开放数据类型和 Open MBean 描述符类。 Open MBean 是一个 MBean,其中属性和操作参数的类型以及返回值是使用一小组预定义的 Java 类构建的。 Open MBean 促进了与远程管理程序的操作,这些远程管理程序不一定能够访问特定于应用程序的类型,包括非 Java 程序。
每个 MBean 都有一个 MBeanInfo
,其中包含有关 MBean 本身及其属性、操作、构造函数和通知的信息。在 Open MBean 中,这个 MBeanInfo
实现了 OpenMBeanInfo
接口,通常是 OpenMBeanInfoSupport
的一个实例。
MBeanInfo.getAttributes
为 Open MBean 返回的属性信息是一个实现 OpenMBeanAttributeInfo
的对象数组,通常是 OpenMBeanAttributeInfoSupport
的实例。除了有关属性的常用信息外,OpenMBeanAttributeInfo
还指定了属性的 OpenType
。可能的 OpenType
值是预定义的,这确保远程管理人员能够理解它们。
类似的评论适用于操作和构造方法的参数类型,以及操作的返回类型。
getType()
返回的属性的 Java 语言类型与其 getOpenType()
返回的 OpenType
之间存在区别。例如,如果 Java 语言类型为 java.lang.String
,则 OpenType
将为 SimpleType.String
。如果 Java 语言类型是 CompositeData
,则 OpenType
将是一个 CompositeType
,它描述属性的 CompositeData
实例中的项目。
默认值和约束
在 Open MBean 中,属性和参数可以在 OpenMBeanAttributeInfo
或 OpenMBeanParameterInfo
中具有默认值和/或与其关联的约束。有两种方法可以指定这些约束。这些值直接指定为 OpenMBeanAttributeInfoSupport
或 OpenMBeanParameterInfoSupport
的构造函数之一的参数,例如 OpenMBeanParameterInfoSupport(String, String, OpenType, Object, Object[])
;或者值在 Descriptor
中指定,作为构造函数之一的参数。
使用 Descriptor
时,感兴趣的字段如下:
defaultValue
定义了getDefaultValue()
返回的值;minValue
定义了getMinValue()
返回的值;maxValue
定义了getMaxValue()
返回的值;legalValues
定义了getLegalValues()
返回的值。
对于 defaultValue
、 minValue
和 maxValue
,关联值必须是对应于 openType
的 Java 类型,或者是可以转换为该类型的字符串。如果找到一个,则转换使用静态方法valueOf(String)
;否则,如果找到一个带有单个 String
参数的构造函数;否则失败。
对于 legalValues
,关联值必须是数组或 Set
,并且数组或集合的元素必须可转换,如 defaultValue
等所述。
这些字段必须满足以下条件:
- 值必须是适当的类型,或者是可以转换为适当类型的字符串,如上所述;
- 如果
legalValues
存在,则minValue
和maxValue
都不能存在; - 如果
defaultValue
存在,则它必须满足legalValues
、minValue
或maxValue
定义的约束,当其中任何一个也存在时; - 如果
minValue
和maxValue
都存在,则minValue
不得大于maxValue
。
- 自从:
- 1.5
- 参见:
-
类描述ArrayType <T>
ArrayType
类是开放式其实例描述所有的类开放数据值是 n 维数组开放数据值。CompositeData
接口指定了特定类型的复合体的行为开放数据代表的对象复合数据结构。将 getter 方法转发给CompositeData
的InvocationHandler
。CompositeDataSupport
类是开放数据实现CompositeData
接口的类。Java 类可以实现此接口以指示它如何被 MXBean 框架转换为CompositeData
。CompositeType
类是开放式其实例描述CompositeData
值类型的类。抛出此运行时异常以指示预期为项目名称的方法参数复合数据或 a 的行索引表格数据无效。抛出此运行时异常表明开放式的开放数据值不是预期的值。抛出此运行时异常以指示要添加到的行的索引表格数据实例已用于引用此中的另一行表格数据实例。当一个开放式, 一个开放数据或一个打开 MBean 元数据信息无法构造实例,因为未满足一个或多个有效性约束。描述一个开放的 MBean 的属性。描述一个开放的 MBean 的属性。描述 Open MBean 的构造方法。描述 Open MBean 的构造方法。描述一个 Open MBean:如果getMBeanInfo()
方法返回一个实现OpenMBeanInfo
接口的类的实例,通常是OpenMBeanInfoSupport
,则 Open MBean 被识别为 Open MBean。描述 Open MBean 的操作。描述 Open MBean 的操作。描述在一个或多个操作或打开的 MBean 的构造方法中使用的参数。描述在一个或多个操作或打开的 MBean 的构造方法中使用的参数。OpenType <T>OpenType
类是描述实际的所有类的父抽象类开放式的开放数据值。SimpleType <T>TabularData
接口指定了特定类型的复合体的行为开放数据代表的对象表格数据结构。TabularDataSupport
类是开放数据实现TabularData
和Map
接口的类,它在内部基于散列映射数据结构。TabularType
类是开放式其实例描述TabularData
值类型的类。