在 JMX 代理中注册 MBean
这是位于“管理”菜单下面的上下文操作(只有选定了 JMX 代理才能启用该操作)执行的内容。您可以通过以下菜单来访问“管理”菜单:
- 顶级菜单
- 项目树节点的上下文菜单(右键单击选定的节点)
此操作的适用性
只有选定了 JMX 代理,才能应用此操作。JMX 代理类是通过 JMX 代理向导生成的类。
将使用在平台 MBeanServer 中对 MBean 执行以下操作所需的代码来更新 JMX 代理 init 方法:
- 实例化(调用 MBean 构造函数)
- 命名(提供 MBean ObjectName)
- 注册(调用 MBeanServer 注册方法)
可以多次调用此操作来注册多个 MBean。
使用“实例化并注册 MBean”操作
- 从“管理”菜单中,选择“实例化并注册 MBean...”。
- 将显示一个弹出式窗口。
- 已选定了“注册现有的 MBean”。
- 可以单击“浏览...”按钮,从当前的项目中选择一个 MBean。也可以在文本字段中直接输入 Mbean 类名。
- 输入有效的 MBean 类后,"ObjectName" 文本字段将处于活动状态。此时提供了缺省的 ObjectName。缺省 ObjectName 的计算方法如下所示:
- 通过 MBean 包名来派生域名。颠倒包名的顺序(例如,com.foo.bar ==> bar.foo.com)。如果包名是缺省包名,则会使用 JMX 缺省域。
- 名为 type 的单个键,将类名作为它的值(例如,class MyClass ==> type=MyClass)。
- 可以随意添加任何键/值对。缺省 ObjectName 计算非常适于命名“单一的”MBean。如果要注册多个相同类型的 MBean,您至少应该添加一个键来避免出现命名冲突。
- 现在,您可以选择一个 MBean 构造函数。
- 完成后,请单击“确定”。
- 将在编辑器中装入 JMX 代理源代码。
- 转至编辑方法以可视化生成的代码。
- 如果不需要更新生成的代码(没有为 MBean 构造函数提供任何参数),则可以立即编译、运行和可视化在代理中活动的 MBean。只需单击“运行”>“使用 JConsole 运行主项目...”,或者单击其关联的工具栏图标。将自动处理编译、执行和可视化操作。
更新生成的代码
如果 MBean 在构造时需要某些参数,则需要使用这些参数来更新生成的代码。
- 在代理源文件中,请转至 init() 方法。
- 为 MBean 构造函数提供所需的参数。在下面的提取中,MBean 构造函数需要一个字符串。
//TODO update Status(String) constructor parameters with valid values.
getMBeanServer().registerMBean(
new Status("OK message"),
new ObjectName("foo.bar.com:type=Status"));