JavaTM Platform
Standard Ed. 6

软件包 javax.management.modelmbean

提供了 ModelMBean 类的定义。

请参见:
          描述

接口摘要
ModelMBean ModelMBean 必须实现此接口。
ModelMBeanInfo 此接口由每个 ModelMBean 的 ModelMBeanInfo 实现。
ModelMBeanNotificationBroadcaster ModelMBean 必须实现此接口。
 

类摘要
DescriptorSupport 此类表示 ModelMBean 元素的元数据集。
ModelMBeanAttributeInfo ModelMBeanAttributeInfo 对象描述了 ModelMBean 的属性。
ModelMBeanConstructorInfo ModelMBeanConstructorInfo 对象描述了 ModelMBean 的一个构造方法。
ModelMBeanInfoSupport 此类表示 ModelMBean 的元数据。
ModelMBeanNotificationInfo ModelMBeanNotificationInfo 对象描述了由 ModelMBean 发出的通知。
ModelMBeanOperationInfo ModelMBeanOperationInfo 对象描述了 ModelMBean 的管理操作。
RequiredModelMBean 此类是 ModelMBean 的实现。
 

异常摘要
InvalidTargetObjectTypeException 当指定了无效的目标对象类型时,抛出此异常。
XMLParseException 当将某个 XML 格式的字符串解析为 ModelMBean 对象,或从 ModelMBean 对象创建 XML 格式的字符串时,抛出此异常。
 

软件包 javax.management.modelmbean 的描述

提供了 ModelMBean 类的定义。Model MBean 是充当管理接口与底层托管资源之间桥梁的 MBean。管理接口和托管资源都指定为 Java 对象。不同管理接口和托管资源可以多次重用相同的 Model MBean 实现,它可以提供诸如持久存储和缓存这样常见的功能。

Model MBean 实现 ModelMBean 接口。它是一个 DynamicMBean 接口,该接口的 getMBeanInfo 方法返回实现 ModelMBeanInfo 的对象。

每个 MBean 都有一个 MBeanInfo,它包含关于 MBean 本身、其属性、操作、构造方法和通知的信息。Model MBean 用 Descriptor 来扩充此 MBeanInfo,这里 Descriptor 通过 (key,value) 对的形式对其他信息进行编码。通常,DescriptorDescriptorSupport 的实例。

RequiredModelMBean 类提供了标准的 Model MBean 实现。

以下显示了一个 Model MBean 的示例,它使我们可以通过 MBean 服务器管理 HashMapget 方法。其他方法不能通过 MBean 服务器进行管理。这里 HashMap 没有特殊的地方。任何公共类的公共方法都可以通过相同方式进行管理。

import java.lang.reflect.Method;
import java.util.HashMap;
import javax.management.*;
import javax.management.modelmbean.*;

// ...

MBeanServer mbs = MBeanServerFactory.createMBeanServer();
// The MBean Server

HashMap map = new HashMap();
// The resource that will be managed

// Construct the management interface for the Model MBean
Method getMethod = HashMap.class.getMethod("get", new Class[] {Object.class});
ModelMBeanOperationInfo getInfo =
    new ModelMBeanOperationInfo("Get value for key", getMethod);
ModelMBeanInfo mmbi =
    new ModelMBeanInfoSupport(HashMap.class.getName(),
                              "Map of keys and values",
                              null,  // no attributes
                              null,  // no constructors
                              new ModelMBeanOperationInfo[] {getInfo},
                              null); // no notifications

// Make the Model MBean and link it to the resource
ModelMBean mmb = new RequiredModelMBean(mmbi);
mmb.setManagedResource(map, "ObjectReference");

// Register the Model MBean in the MBean Server
ObjectName mapName = new ObjectName(":type=Map,name=whatever");
mbs.registerMBean(mmb, mapName);

// Resource can evolve independently of the MBean
map.put("key", "value");

// Can access the "get" method through the MBean Server
mbs.invoke(mapName, "get", new Object[] {"key"}, new String[] {Object.class.getName()});
// returns "value"
    

包规范

从以下版本开始:
1.5

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策