Module java.management

Class ModelMBeanInfoSupport

java.lang.Object
javax.management.MBeanInfo
javax.management.modelmbean.ModelMBeanInfoSupport
所有已实现的接口:
Serializable, Cloneable, DescriptorRead, ModelMBeanInfo

public class ModelMBeanInfoSupport extends MBeanInfo implements ModelMBeanInfo
这个类代表了ModelMBeans的元数据。在元数据对象上已经添加了描述符。

希望成为可管理资源的Java资源使用MBeanServer的createMBean方法实例化ModelMBean。然后,资源为ModelMBean实例设置ModelMBeanInfo和描述符。通过ModelMBeanInfo为ModelMBean公开的属性和操作可以从MBeans、连接器/适配器等其他MBeans访问。通过描述符,可以定义受管应用程序中的值和方法,并将其映射到ModelMBean的属性和操作。这种映射可以在开发过程中在文件中定义,也可以在运行时动态和以编程方式定义。

在MBeanServer中实例化的每个ModelMBean都变得可管理:其属性和操作通过连接到该MBeanServer的连接器/适配器变得可以远程访问。Java对象不能在MBeanServer中注册,除非它是符合JMX的MBean。通过实例化ModelMBean,资源可以确保MBean是有效的。每个公共方法必须抛出MBeanException和RuntimeOperationsException。这允许从分布式通信(RMI、EJB等)中包装异常。

这个类的serialVersionUID-1935722590756516193L

自从:
1.5
参见:
  • Constructor Details

    • ModelMBeanInfoSupport

      public ModelMBeanInfoSupport(ModelMBeanInfo mbi)
      构造一个给定ModelMBeanInfo的副本的ModelMBeanInfoSupport。返回的对象是给定对象的浅拷贝。描述符或包含的数组(ModelMBeanAttributeInfo[]等)都不会被克隆。这个方法主要用于通过setDescriptor修改返回实例的描述符,而不影响原始对象的描述符。
      参数:
      mbi - 用于初始化正在创建的ModelMBeanInfo的ModelMBeanInfo实例。
    • ModelMBeanInfoSupport

      public ModelMBeanInfoSupport(String className, String description, ModelMBeanAttributeInfo[] attributes, ModelMBeanConstructorInfo[] constructors, ModelMBeanOperationInfo[] operations, ModelMBeanNotificationInfo[] notifications)
      使用提供的信息创建一个ModelMBeanInfoSupport,但描述符是默认的。默认描述符是:name=className,descriptorType="mbean",displayName=className,persistPolicy="never",log="F",visibility="1"
      参数:
      className - MBean的类名
      description - ModelMBean的可读描述
      attributes - 具有描述符的ModelMBeanAttributeInfo对象数组
      constructors - 具有描述符的ModelMBeanConstructorInfo对象数组
      operations - 具有描述符的ModelMBeanOperationInfo对象数组
      notifications - 具有描述符的ModelMBeanNotificationInfo对象数组
    • ModelMBeanInfoSupport

      public ModelMBeanInfoSupport(String className, String description, ModelMBeanAttributeInfo[] attributes, ModelMBeanConstructorInfo[] constructors, ModelMBeanOperationInfo[] operations, ModelMBeanNotificationInfo[] notifications, Descriptor mbeandescriptor)
      使用提供的信息和参数中给定的描述符创建一个ModelMBeanInfoSupport。
      参数:
      className - MBean的类名
      description - ModelMBean的可读描述
      attributes - 具有描述符的ModelMBeanAttributeInfo对象数组
      constructors - 具有描述符的ModelMBeanConstructorInfo对象数组
      operations - 具有描述符的ModelMBeanOperationInfo对象数组
      notifications - 具有描述符的ModelMBeanNotificationInfo对象数组
      mbeandescriptor - 用作包含MBean范围策略的MBeanDescriptor的描述符。如果描述符为null,将构造一个默认描述符。默认描述符是:name=className,descriptorType="mbean",displayName=className,persistPolicy="never",log="F",visibility="1"。如果描述符不包含所有这些字段,则缺少的字段将使用这些默认值添加。
      抛出:
      RuntimeOperationsException - 封装了传递给参数的无效描述符的IllegalArgumentException。(有关有效MBean描述符的定义,请参见getMBeanDescriptor。)
  • Method Details

    • clone

      public Object clone()
      返回此实例的浅克隆。描述符或包含的数组(ModelMBeanAttributeInfo[]等)都不会被克隆。这个方法主要用于通过setDescriptor修改克隆体的描述符,而不影响原始对象的描述符。
      指定者:
      clone 在接口 ModelMBeanInfo
      覆盖:
      clone 在类 MBeanInfo
      返回:
      此实例的浅克隆。
      参见:
    • getDescriptors

      public Descriptor[] getDescriptors(String inDescriptorType) throws MBeanException, RuntimeOperationsException
      从接口复制的描述: ModelMBeanInfo
      返回由类型为inDescriptorType的ModelMBeanInfo的所有描述符组成的描述符数组。
      指定者:
      getDescriptors 在接口 ModelMBeanInfo
      参数:
      inDescriptorType - 必须为描述符设置的descriptorType字段的值以返回描述符。必须为"mbean"、"attribute"、"operation"、"constructor"或"notification"。如果为null或空,则将返回所有类型。
      返回:
      包含ModelMBean的所有描述符的描述符数组,如果类型为inDescriptorType。
      抛出:
      MBeanException - 封装了分布式通信异常。
      RuntimeOperationsException - 封装了当参数中的descriptorType不是"mbean"、"attribute"、"operation"、"constructor"、"notification"、空或null之一时的IllegalArgumentException。
      参见:
    • setDescriptors

      public void setDescriptors(Descriptor[] inDescriptors) throws MBeanException, RuntimeOperationsException
      从接口复制的描述: ModelMBeanInfo
      添加或替换ModelMBeanInfo中的描述符。
      指定者:
      setDescriptors 在接口 ModelMBeanInfo
      参数:
      inDescriptors - 要设置在ModelMBeanInfo中的描述符。列表中的空元素将被忽略。所有描述符必须具有名称和descriptorType字段。
      抛出:
      MBeanException - 封装了分布式通信异常。
      RuntimeOperationsException - 封装了对空或无效描述符的IllegalArgumentException。
      参见:
    • getDescriptor

      public Descriptor getDescriptor(String inDescriptorName) throws MBeanException, RuntimeOperationsException
      返回按名称请求的描述符。
      参数:
      inDescriptorName - 描述符的名称。
      返回:
      包含与相同名称的ModelMBean的描述符的描述符。如果找不到描述符,则返回null。
      抛出:
      MBeanException - 封装了分布式通信异常。
      RuntimeOperationsException - 封装了对空名称的非法参数异常。
      参见:
    • getDescriptor

      public Descriptor getDescriptor(String inDescriptorName, String inDescriptorType) throws MBeanException, RuntimeOperationsException
      从接口复制的描述: ModelMBeanInfo
      返回请求的名称和描述符类型的描述符。
      指定者:
      getDescriptor 在接口 ModelMBeanInfo
      参数:
      inDescriptorName - 描述符的名称。
      inDescriptorType - 请求的描述符类型。如果为null或空,则搜索所有类型。有效类型为'mbean'、'attribute'、'constructor'、'operation'和'notification'。此值将等于返回的描述符中的'descriptorType'字段。
      返回:
      包含与相同名称和描述符类型的ModelMBean的描述符。如果找不到描述符,则返回null。
      抛出:
      MBeanException - 封装了分布式通信异常。
      RuntimeOperationsException - 封装了对空描述符名称或空或无效类型的非法参数异常。类型必须为"mbean"、"attribute"、"constructor"、"operation"或"notification"。
      参见:
    • setDescriptor

      public void setDescriptor(Descriptor inDescriptor, String inDescriptorType) throws MBeanException, RuntimeOperationsException
      从接口复制的描述: ModelMBeanInfo
      为ModelMBean在info数组中的类型inDescriptorType设置描述符。将调用相应ModelMBean*Info的setDescriptor方法来设置指定的描述符。
      指定者:
      setDescriptor 在接口 ModelMBeanInfo
      参数:
      inDescriptor - 要设置在ModelMBean中的描述符。它不能为null。所有描述符必须具有名称和descriptorType字段。
      inDescriptorType - 要设置的描述符类型。如果为null,则使用描述符中的descriptorType字段。如果指定了此值,则必须在描述符中的descriptorType字段中设置此值。必须为"mbean"、"attribute"、"constructor"、"operation"或"notification"。
      抛出:
      MBeanException - 封装了分布式通信异常。
      RuntimeOperationsException - 封装了对非法或空参数或如果描述符的名称字段在相应的MBeanAttributeInfo或MBeanConstructorInfo或MBeanNotificationInfo或MBeanOperationInfo中找不到时的非法参数异常。
      参见:
    • getAttribute

      从接口复制的描述: ModelMBeanInfo
      返回请求的名称的ModelMBeanAttributeInfo。
      指定者:
      getAttribute 在接口 ModelMBeanInfo
      参数:
      inName - 要获取的ModelMBeanAttributeInfo的名称。如果不存在此名称的ModelMBeanAttributeInfo,则返回null。
      返回:
      名称属性的属性信息,如果没有则返回null。
      抛出:
      MBeanException - 封装了分布式通信异常。
      RuntimeOperationsException - 封装了对空属性名称的非法参数异常。
    • getOperation

      从接口复制的描述: ModelMBeanInfo
      返回请求的名称的ModelMBeanOperationInfo。
      指定者:
      getOperation 在接口 ModelMBeanInfo
      参数:
      inName - 要获取的ModelMBeanOperationInfo的名称。如果不存在此名称的ModelMBeanOperationInfo,则返回null。
      返回:
      名称操作的操作信息,如果没有则返回null。
      抛出:
      MBeanException - 封装了分布式通信异常。
      RuntimeOperationsException - 封装了对空操作名称的非法参数异常。
    • getConstructor

      返回请求的名称的ModelMBeanConstructorInfo。如果不存在此名称的ModelMBeanConstructorInfo,则返回null。
      参数:
      inName - 构造函数的名称。
      返回:
      名称构造函数的构造函数信息,如果没有则返回null。
      抛出:
      MBeanException - 封装了分布式通信异常。
      RuntimeOperationsException - 封装了对空构造函数名称的非法参数异常。
    • getNotification

      从类复制的描述: MBeanInfo
      返回请求的名称的ModelMBeanNotificationInfo。
      指定者:
      getNotification 在接口 ModelMBeanInfo
      参数:
      inName - 要获取的ModelMBeanNotificationInfo的名称。如果不存在此名称的ModelMBeanNotificationInfo,则返回null。
      返回:
      名称通知的信息,如果没有则返回null。
      抛出:
      MBeanException - 封装了分布式通信异常。
      RuntimeOperationsException - 封装了对空通知名称的非法参数异常。
    • getDescriptor

      public Descriptor getDescriptor()
      从接口复制的描述: ModelMBeanInfo
      Get the descriptor of this MBeanInfo. Changing the returned value will have no affect on the original descriptor.
      Specified by:
      getDescriptor in interface DescriptorRead
      Overrides:
      getDescriptor in class MBeanInfo
      Returns:
      a descriptor that is either immutable or a copy of the original.
      Since:
      1.6
    • getMBeanDescriptor

      public Descriptor getMBeanDescriptor() throws MBeanException
      Description copied from interface: ModelMBeanInfo

      返回包含MBean范围策略的ModelMBean描述符。此描述符包含有关MBean的元数据以及持久性和缓存的默认策略。

      描述符中的字段被定义为但不限于以下内容。请注意,当此表中的类型为Number时,也可以使用Long的十进制表示形式的字符串。

      ModelMBean字段
      名称 类型 含义
      name 字符串 MBean名称。
      descriptorType 字符串 必须为"mbean"。
      displayName 字符串 用于显示中的MBean名称。
      persistPolicy 字符串 其中之一:OnUpdate|OnTimer|NoMoreOftenThan|OnUnregister|Always|Never。请参阅JMX规范文档中的"MBean描述符字段"部分。
      persistLocation 字符串 MBean应持久化的完全限定目录名称(如果适用)。
      persistFile 字符串 MBean应持久化到的文件名。
      persistPeriod 数字 持久化周期的频率(以秒为单位),适用于OnTime和NoMoreOftenThan PersistPolicy。
      currencyTimeLimit 数字 缓存值有效的时间:<0表示永不,=0表示始终有效,>0表示秒数。
      log 字符串 t:记录所有通知,f:不记录任何通知。
      logfile 字符串 用于记录事件的完全限定文件名。
      visibility 数字 1-4,其中1:始终可见,4:很少可见。
      export 字符串 用于导出/公开此MBean以便其他JMX代理可以找到的名称。
      presentationString 字符串 XML格式的字符串,用于将数据的呈现与MBean关联起来。

      默认描述符为:name=className,descriptorType="mbean",displayName=className,persistPolicy="never",log="F",visibility="1"。如果描述符不包含所有这些字段,则将使用这些默认值添加这些字段。

      注意:由于此规范先前版本中的不一致性,建议不要对currencyTimeLimit使用负值或零值。要表示缓存值永远无效,请省略currencyTimeLimit字段。要表示它始终有效,请为此字段使用一个非常大的数字。

      指定者:
      getMBeanDescriptor 在接口 ModelMBeanInfo
      返回:
      MBean描述符。
      抛出:
      MBeanException - 封装了分布式通信异常。
      另请参阅:
    • setMBeanDescriptor

      public void setMBeanDescriptor(Descriptor inMBeanDescriptor) throws MBeanException, RuntimeOperationsException
      从接口中复制的描述: ModelMBeanInfo
      设置ModelMBean的描述符。此描述符包含有关MBean的默认范围元数据以及持久性和缓存的默认策略。此操作完全替换描述符,不进行合并。如果要设置的描述符为null,则将创建默认描述符。默认描述符为:name=className,descriptorType="mbean",displayName=className,persistPolicy="never",log="F",visibility="1"。如果描述符不包含所有这些字段,则将使用这些默认值添加这些字段。有关有效字段名称的描述,请参阅getMBeanDescriptor方法的javadoc。
      指定者:
      setMBeanDescriptor 在接口 ModelMBeanInfo
      参数:
      inMBeanDescriptor - 要设置的描述符。
      抛出:
      MBeanException - 封装了分布式通信异常。
      RuntimeOperationsException - 封装了无效描述符的IllegalArgumentException。
      另请参阅: