NetBeans IDE 中的 JMX 监视入门指南

NetBeans JMX 模块将 JMX 技术集成到 NetBeans IDE 中的工作流。此模块允许您快速开发管理应用程序,向现有应用程序添加管理,开发管理器应用程序,以及监视虚拟机的状态。

本文档已针对 JMX 向导模块版本 3.0、NetBeans IDE 6.5 及更新版本进行更新,且运行于 JDK 6 或 JDK 7 之上。可以从更新中心下载 JMX 模块。

注:此文档简短快速地介绍了 NetBeans IDE 的 JMX 模块。有关更详细信息,请完成 JMX 模块教程将 JMX 分析添加到 Java 应用程序中

本入门文档概述了 JMX 模块功能:

此页上的内容适用于 NetBeans IDE 7.2、7.3、7.4 和 8.0
  • 用于创建 JMX MBean 和管理器的向导。
  • 通过添加属性和操作,实现 MBeanRegistration 接口或实现 NotificationEmitter 接口更新现有 MBean 的操作。
  • 根据现有 Java 类的 MBean 生成。
  • 用于将 MBean 注册到 Java 平台 MBean 服务器的操作。
  • 启动 Java 平台管理控制台 (JConsole) 的功能。
  • 使用 JConsole 运行和调试应用程序的功能。
  • 向您演示如何将 JMX 功能添加到应用程序的基于 Anagram Game 的样例应用程序。
  • 用于生成管理属性文件以允许您启动可管理的安全 JVM 的向导。
  • 联机帮助。
  • 可从 netbeans.org 站点访问的教程。

先决条件

本教程假定您具备以下技术的一些基本知识或编程经验。

您还将受益于在 Java 平台的监视和管理方面的一些知识

本教程所需要的软件

在学习本教程之前,您需要在计算机上安装以下软件:

软件或资源 要求的版本
NetBeans IDE 7.2、7.3、7.4、8.0、Java 包
Java 开发工具包 (JDK) 版本 7 或 8
JMX 插件 可从 NetBeans 更新中心获得
JConsole 插件 可从 NetBeans 更新中心获得

要安装 JMXJConsole 插件,请选择“工具”>“插件”,然后从 NetBeans 更新中心下载相应模块。

访问 JMX 向导

在安装 JMX 插件并打开您的项目之后,可以通过选择 "File"(文件)> "New File"(新建文件)(Ctrl-N 组合键)并选择 "JMX" 类别来访问 JMX 向导。然后可以从以下项中选择:

  • 管理配置文件。用于存储 JMX 管理(特别是远程连接和安全)的配置的标准 Java 属性文件。
  • 几种类型的 JMX MBean。MBean 可以表示一个设备、一个应用程序或需要托管的任何资源。MBean 公开管理界面:一组可读和/或可写属性和一组可调用操作以及自我描述。在 MBean 实例的整个生命周期内,该管理界面都不会更改。MBean 还会在发生某些定义的事件时发出通知。JMX MBean 需要注册到 MBean 服务器。
  • JMX 管理器。JMX 管理器是连接到远程 JMX MBean 服务器的任何应用程序。
    JMX 新建文件向导的屏幕快照

更新 MBean

可以使用 JMX 上下文菜单操作(将弹出一个对话框)来向 MBean 添加属性和操作。也可以让 MBean 实现 NotificationEmitter 接口。

要更新 MBean,请在 "Project"(项目)树中选择 MBean 类 Java 文件并通过右键单击相应节点来访问 JMX 弹出菜单,或者在打开了 MBean 类 Java 文件的编辑器窗口中简单右键单击并访问 JMX 弹出菜单。

将 JMX 分析添加到 Java 应用程序中教程的练习 3 中演示了这些操作。

注册 MBean

要远程连接到 MBean 并管理您的应用程序,需要将 MBean 注册到 MBean 服务器中。

MBean 服务器是 JMX 技术的主要的核心部分。该服务器保持引用注册到其中的所有 MBean,可以发送有关新 MBean 注册或删除操作的通知,并且可以接受远程连接以公开其注册的 MBean 的属性和操作。如果您不熟悉 MBean 服务器角色,请阅读 javax.management.MBeanServer API 文档。

从 JDK 5 开始,Java 平台提供一个称为“平台 MBean 服务器”的默认 MBean 服务器。使用该服务器,您可以监视 JVM,也可以将您自己的 MBean 注册到其中。有关 Java 平台 MBean 服务器的详细信息,请阅读 java.lang.management.ManagementFactory API 文档。

根据逻辑,确定希望将 MBean 注册到的应用程序代码位置,通常是在主类的初始化阶段。在编辑器窗口中右键单击希望生成 MBean 注册代码的位置,选择 "JMX" 子菜单,然后选择 "Generate MBean Registration..."(生成 MBean 注册...)操作。

将 JMX 分析添加到 Java 应用程序中教程的练习 5 中演示了此操作。

实现并执行可管理的应用程序

JConsole 是 JMX 兼容的图形工具,用于监视 Java 虚拟机。JConsole 可以监视本地和远程 JVM,并且可以用于监视和管理 JMX 应用程序。

通常,实现并执行可管理的应用程序的工作流如下所示:

  1. 生成 MBean。
  2. 向 MBean 添加实现
  3. 生成 MBean 的注册代码。
  4. 使用 JConsole 运行或调试项目。

安装 JMX 和 JConsole 插件后,您将会看到工具栏上添加了以下按钮。也可以在主菜单中的 "Debug"(调试)菜单项下访问这些操作。

按钮 描述
工具栏中的 "Run Main Project with Monitoring and Management"(通过监视和管理运行主项目)按钮 通过监视和管理运行主项目
工具栏中的 "Debug Main Project with Monitoring and Management"(通过监视和管理调试主项目)按钮 通过监视和管理调试主项目
工具栏中的 "Start JConsole Management Console"(启动 JConsole 管理控制台)按钮 启动 JConsole 管理控制台

注:JConsole 是 Java 平台的一部分,可以独立于 IDE 进行使用。有关详细信息,请参阅以下资源。

运行样例应用程序

JMX 模块包含其中内置了 JMX 监视的样例应用程序。

  1. 选择 "File"(文件)> "New Project"(新建项目)。
  2. 在 "Samples"(样例)中,选择 "JMX" 类别。
  3. 选择 "Anagram Game Managed with JMX"(使用 JMX 管理的 Anagram Game)项目。
    "New Project"(新建项目)向导中的 "Anagram Game Managed with JMX"(使用 JMX 管理的 Anagram Game)项目的屏幕快照
  4. 单击 "Next"(下一步)。无需更改提供的默认项目名称或位置值。确认 "Set as Main Project"(设置为主项目)复选框处于选中状态。单击 "Finish"(完成)。

    注:如果您以前未安装 JUnit 插件,则 IDE 可能会提示您安装 JUnit 库。您可以单击 "Resolve Resource Problems"(解决资源问题)对话框中的 "Resolve"(解决)启动安装程序来安装 JUnit 插件。或者,您也可以在插件管理器中安装 JUnit 插件。

  5. 创建项目并将其设置为主项目之后,通过单击 "Run Main Project with Monitoring and Management"(通过监视和管理运行主项目)JConsole 按钮使用 JConsole 运行该项目。

    注:当 Java 监视和管理控制台尝试连接到 Anagram Game 进程时,您可能会在此控制台中看到 "Connection Failed"(连接失败)警告。对于本教程,当系统提示您授权连接时,您可以单击 "Insecure"(不安全)。

    单击此按钮将启动并显示 Anagram Game:

    Anagram Game

    也将显示 "JConsole" 窗口。

  6. 在 "JConsole" 窗口中,选择 "MBean" 标签,然后在左侧的树布局中向下打开 anagrams.toy.com 下的所有节点,如下所示。
    "JConsole" 窗口的屏幕快照
  7. 选择 "Notifications"(通知)节点,然后单击底部的 "Subscribe"(订阅)按钮,这样在 Anagram 每次得到解决时 JConsole 都将会收到新通知。
  8. 现在转到 "Anagrams Game" 窗口,然后解决前三个或前四个 Anagram(答案位于 WordLibrary 类中,而此处它们是:abstraction、ambiguous、arithmetic、backslash...)
  9. 返回 JConsole,注意它收到了四个通知。
  10. 单击 "Attributes"(属性)节点,可以看到更新了属性值:
    显示已更新值的 "JConsole" 窗口的屏幕快照

另请参见

此文档简短快速地介绍了 NetBeans IDE 的 JMX 模块。有关更详细信息,请参见以下 JMX 模块教程:

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo