在 JMX 代理中将 Java 对象注册为 MBean


这是位于“管理”菜单下面的上下文操作(只有选定了 JMX 代理才能启用该操作)。您可以通过以下菜单来访问“管理”菜单:

此操作的适用性


只有选定了 JMX 代理,才能应用此操作。JMX 代理类是使用 JMX 代理向导生成的类
将使用以下操作所需的代码来更新 JMX 代理 init 方法:
可以多次调用此操作来注册多个 Java 对象。

可以包装的 Java 类

并非所有的 Java 类都适于自动导出为 MBean。JMX 将对此进行一些检查。可以包装的类为:

使用“实例化并注册 MBean”操作

  1. 从“管理”菜单中,选择“实例化并注册 MBean...”。
  2. 将显示一个弹出式窗口。
  3. 选中“注册 StandardMBean 中包装的 Java 对象”复选框。
  4. 可以单击“浏览...”按钮,从当前的项目中选择一个 Java 类。也可以在文本字段中直接输入 Java 类名。
  5. 输入有效的 Java 类后,"ObjectName" 文本字段将处于活动状态。此时提供了缺省的 ObjectName。缺省 ObjectName 的计算方法如下:
  6. 可以随意添加任何键/值对。缺省 ObjectName 计算非常适于命名“单一的”MBean。如果要注册多个相同类型的 Java 对象,您至少应该添加一个键来避免出现命名冲突。
  7. 现在,您可以从“构造函数”下拉列表中选择一个类构造函数。如果不想生成 Java 对象实例化,请选择“不生成对象实例化”项。
  8. 完成后,请单击“确定”。
  9. 将在编辑器中装入 JMX 代理源代码。
  10. 转至编辑方法以可视化生成的代码。
  11. 如果不需要更新生成的代码(没有为 Java 类构造函数提供任何对象引用以及参数),则可以立即编译、运行和可视化在代理中活动的 MBean。只需单击“运行”>“使用 JConsole 运行主项目...”,或者单击其关联的工具栏图标。将自动处理编译、执行和可视化操作。

更新生成的代码


在代理源文件中,请转至 init() 方法。

                getMBeanServer().registerMBean(
                    //TODO replace first parameter by your own MyClass object.
                    new javax.management.StandardMBean(null, I.class),
                    new ObjectName(":type=Test2"));


                //TODO update MyClass(String) constructor parameters with valid values.
                getMBeanServer().registerMBean(
                    new javax.management.StandardMBean(
                       new MyClass(null, AnInterfaceI.class),
                    new ObjectName(":type=MyClass"));


法律声明