public interface ModelMBeanInfo
希望可管理的Java资源使用MBeanServer的createMBean方法实例化ModelMBean。 资源然后设置ModelMBean实例的ModelMBeanInfo和Descriptors。 通过ModelMBean的ModelMBeanInfo公开的属性,操作和通知包括管理界面,可以从MBean,连接器/适配器(如其他MBean)访问。 通过描述符,可以将托管应用程序中的值和方法定义并映射到ModelMBean的属性和操作。 该映射可以在文件开发过程中定义,也可以在运行时以动态和编程方式进行定义。
在MBeanServer中实例化的每个ModelMBean变得可管理:其属性,操作和通知可以通过连接到该MBeanServer的连接器/适配器进行远程访问。 除非是符合JMX的MBean,否则不能在MBeanServer中注册Java对象。 通过实例化一个ModelMBean,资源保证MBean有效。 必须在每个公共方法上抛出MBeanException和RuntimeOperationsException。 这允许从分布式通信(RMI,EJB等)中包装异常
Modifier and Type | Method and Description |
---|---|
Object |
clone()
创建并返回此对象的副本。
|
ModelMBeanAttributeInfo |
getAttribute(String inName)
返回名称请求的ModelMBeanAttributeInfo。
|
MBeanAttributeInfo[] |
getAttributes()
返回暴露给管理的属性列表。
|
String |
getClassName()
返回此
MBeanInfo 的MBean的Java类的名称。
|
MBeanConstructorInfo[] |
getConstructors()
返回MBean的公共构造函数的列表。
|
String |
getDescription()
返回MBean的可读描述。
|
Descriptor |
getDescriptor(String inDescriptorName, String inDescriptorType)
返回由name和descriptorType请求的描述符。
|
Descriptor[] |
getDescriptors(String inDescriptorType)
返回一个Descriptor数组,它由TypeDelegorType类型的ModelMBeanInfo的所有描述符组成。
|
Descriptor |
getMBeanDescriptor()
返回包含MBean宽策略的ModelMBean描述符。
|
ModelMBeanNotificationInfo |
getNotification(String inName)
返回名称请求的ModelMBeanNotificationInfo。
|
MBeanNotificationInfo[] |
getNotifications()
返回MBean发出的通知列表。
|
ModelMBeanOperationInfo |
getOperation(String inName)
返回名称请求的ModelMBeanOperationInfo。
|
MBeanOperationInfo[] |
getOperations()
返回MBean的操作列表。
|
void |
setDescriptor(Descriptor inDescriptor, String inDescriptorType)
在ModelMBean的类型为inDescriptorType的info数组中设置描述符。
|
void |
setDescriptors(Descriptor[] inDescriptors)
在ModelMBeanInfo中添加或替换描述符。
|
void |
setMBeanDescriptor(Descriptor inDescriptor)
设置ModelMBean的描述符。
|
Descriptor[] getDescriptors(String inDescriptorType) throws MBeanException, RuntimeOperationsException
inDescriptorType
- 必须为要返回的描述符设置的descriptorType字段的值。
必须是“mbean”,“属性”,“操作”,“构造函数”或“通知”。
如果为空或空,则将返回所有类型。
MBeanException
- 包裹分布式通信异常。
RuntimeOperationsException
- 当descriptorType参数不是“mbean”,“attribute”,“operation”,“constructor”,“notification”,empty或null时,会包装一个IllegalArgumentException。
setDescriptors(javax.management.Descriptor[])
void setDescriptors(Descriptor[] inDescriptors) throws MBeanException, RuntimeOperationsException
inDescriptors
- 要在ModelMBeanInfo中设置的描述符。
列表的空白元素将被忽略。
所有描述符必须具有名称和descriptorType字段。
RuntimeOperationsException
- 为null或无效描述符包装一个IllegalArgumentException。
MBeanException
- 包装分布式通信异常。
getDescriptors(java.lang.String)
Descriptor getDescriptor(String inDescriptorName, String inDescriptorType) throws MBeanException, RuntimeOperationsException
inDescriptorName
- 描述
inDescriptorName
的名称。
inDescriptorType
- 正在请求的描述符的类型。
如果这是空或空,则搜索所有类型。
有效的类型是'mbean','attribute','constructor''operation'和'notification'。
该值将等于返回的描述符中的“descriptorType”字段。
MBeanException
- 包装分布式通信异常。
RuntimeOperationsException
- 为null描述符名称或空值或无效类型包装IllegalArgumentException。
类型必须是“mbean”,“attribute”,“constructor”,“operation”或“notification”。
setDescriptor(javax.management.Descriptor, java.lang.String)
void setDescriptor(Descriptor inDescriptor, String inDescriptorType) throws MBeanException, RuntimeOperationsException
inDescriptor
- 要在ModelMBean中设置的描述符。
它不能为空。
所有描述符必须具有名称和descriptorType字段。
inDescriptorType
- 要设置的描述符的类型。
如果这是空值,则使用描述符中的descriptorType字段。
如果指定,则必须在描述符的descriptorType字段中设置此值。
必须是“mbean”,“属性”,“构造函数”,“操作”或“通知”。
RuntimeOperationsException
- 为非法或空参数包装一个IllegalArgumentException,或者如果在相应的MBeanAttributeInfo或MBeanConstructorInfo或MBeanNotificationInfo或MBeanOperationInfo中找不到描述符的名称字段。
MBeanException
- 包装分布式通信异常。
getDescriptor(java.lang.String, java.lang.String)
Descriptor getMBeanDescriptor() throws MBeanException, RuntimeOperationsException
返回包含MBean宽策略的ModelMBean描述符。 此描述符包含有关MBean的元数据和用于持久性和缓存的默认策略。
描述符中的字段被定义为但不限于以下内容。 请注意,当该表中的Type为Number时,也可以使用Long的十进制表示形式的String。
Name Type Meaning name String MBean name. descriptorType String Must be "mbean". displayName String Name of MBean to be used in displays. persistPolicy String One of: OnUpdate|OnTimer|NoMoreOftenThan|OnUnregister|Always|Never. See the section "MBean Descriptor Fields" in the JMX specification document. persistLocation String The fully qualified directory name where the MBean should be persisted (if appropriate). persistFile String File name into which the MBean should be persisted. persistPeriod Number Frequency of persist cycle in seconds, for OnTime and NoMoreOftenThan PersistPolicy currencyTimeLimit Number How long cached value is valid: <0 never, =0 always, >0 seconds. log String t: log all notifications, f: log no notifications. logfile String Fully qualified filename to log events to. visibility Number 1-4 where 1: always visible 4: rarely visible. export String Name to be used to export/expose this MBean so that it is findable by other JMX Agents. presentationString String XML formatted string to allow presentation of data to be associated with the MBean.默认描述符是:name = className,descriptorType =“mbean”,displayName = className,persistPolicy =“never”,log =“F”,visibility =“1”如果描述符不包含所有这些字段,具有这些默认值。
注:由于与此规范的以前版本不一致,建议不要使用负值或零值currencyTimeLimit
。 要指示缓存值永远无效,请省略currencyTimeLimit
字段。 要指示它始终有效,请为此字段使用非常大的数字。
MBeanException
- 包装分布式通信异常。
RuntimeOperationsException
- 获得描述符时发生RuntimeException
。
setMBeanDescriptor(javax.management.Descriptor)
void setMBeanDescriptor(Descriptor inDescriptor) throws MBeanException, RuntimeOperationsException
getMBeanDescriptor
方法javadoc。
inDescriptor
- 要设置的描述符。
MBeanException
- 包装分布式通信异常。
RuntimeOperationsException
- 为无效描述符包装一个IllegalArgumentException。
getMBeanDescriptor()
ModelMBeanAttributeInfo getAttribute(String inName) throws MBeanException, RuntimeOperationsException
inName
- 要获取的ModelMBeanAttributeInfo的名称。
如果此名称不存在ModelMBeanAttributeInfo,则返回null。
MBeanException
- 包裹分布式通信异常。
RuntimeOperationsException
- 为null属性名称包装一个IllegalArgumentException。
ModelMBeanOperationInfo getOperation(String inName) throws MBeanException, RuntimeOperationsException
inName
- 要获取的ModelMBeanOperationInfo的名称。
如果此名称不存在ModelMBeanOperationInfo,则返回null。
MBeanException
- 包装分布式通信异常。
RuntimeOperationsException
- 为空操作名称包装一个IllegalArgumentException。
ModelMBeanNotificationInfo getNotification(String inName) throws MBeanException, RuntimeOperationsException
inName
- 要获取的ModelMBeanNotificationInfo的名称。
如果此名称不存在ModelMBeanNotificationInfo,则返回null。
MBeanException
- 包裹分布式通信异常。
RuntimeOperationsException
- 为null通知名称包装一个IllegalArgumentException。
Object clone()
MBeanAttributeInfo[] getAttributes()
MBeanAttributeInfo
对象描述。
MBeanAttributeInfo
对象的数组。
String getClassName()
MBeanInfo
的MBean的Java类的名称。
MBeanConstructorInfo[] getConstructors()
MBeanConstructorInfo
对象描述。
MBeanConstructorInfo
对象。
String getDescription()
MBeanNotificationInfo[] getNotifications()
MBeanNotificationInfo
对象描述。
除了应用程序指定的任何通知之外,ModelMBean还可能会同时发送两个附加通知:
MBeanNotificationInfo
对象。
MBeanOperationInfo[] getOperations()
MBeanOperationInfo
对象描述。
MBeanOperationInfo
对象的数组。