免费下载在 Windows 上运行此教程所需的所有内容,其中包括:
如果您使用其他操作系统,请访问前提条件,获得指向各个下载的链接。
本教程讲述了如何编写 JMX 管理 Bean (MBean) 来为 J2EE Web 应用程序提供管理支持。该 Web 应用程序使用该 MBean 提供的属性值来控制它所显示数据的外观。Web 应用程序和 MBean 是通过所提供的 Application Server Control 管理控制台部署到 Oracle Containers for J2EE 10g (10.1.3) 环境的。
大约 1 小时
本教程包括下列主题:
| 概述 | ||
| 场景 | ||
| 前提条件 | ||
| 配置 Oracle Containers for J2EE (OC4J) | ||
| 部署和测试 Web 应用程序 | ||
| 使用 MBean 管理接口重新部署和测试 Web 应用程序 | ||
| 总结 | ||
| 相关信息 | ||
将光标放在该图标上加载并查看本教程的所有屏幕截图。
警告:因为此操作会同时加载所有屏幕截图,所以响应速度可能会稍慢一些,具体情况取决于您的 Internet 连接。
注意:此外,还可以在下列步骤中将光标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。
一个在 OC4J 实例中运行的 Web 应用程序查询和显示员工姓名和工资信息。本教程提供的步骤执行下列任务:
| 使用 Application Server Control 中的 JMX MBean 浏览器浏览在 OC4J 中运行的 MBean | ||
|
开发一个 MBean,提供用于更改该 Web 应用程序所显示员数据的可视表示的属性。 |
||
|
将该 MBean 和修改后的 Web 应用程序部署到一个 OC4J 10g (10.1.3) 实例中 |
||
| 使用 Application Server Control 检查和设置 MBean 属性 | ||
| 使用 Application Server Control 在运行时应用了 MBean 属性值更改之后,执行该 Web 应用程序,查看更改后的外观。 | ||
一个现有 Java Web 应用程序执行查询来检索员工的姓名和工资。起初,使用不带颜色的默认字体样式格式化这些数据。下面的网页演示了所呈现的信息:
该企业使用一个支持 JMX 功能的应用程序,它与一个称为 FormatMBean 的 MBean 连接。该 MBean 为管理员提供了一种动态更改下列属性来格式化显示在该 Web 应用程序页上的员工信息的途径:
|
SalaryColor:该字符串用于指定当工资值大于 SalaryThreshold 值时该工资值显示的颜色 |
||
|
SalaryThreshold:指定工资阈值的十进制值 |
||
| SalarySymbol:设置货币符号字符的字符串 | ||
| NameBold:布尔型值。如果设置为真,则使员工姓名以粗体样式显示。 | ||
| NameItalic:布尔型值。如果设置为真,则会使员工姓名以斜体样式显示。 注意:将 NameBold 和 NameItalic 同时设置为真会使该姓名同时以粗体和斜体两种样式显示。 |
||
| NameColor:指定用于显示员工姓名的颜色的字符串 | ||
这些 MBean 属性和操作在 OC4J 附带的 Application Server Control 管理控制台中提供给管理员。管理员使用 Application Server Control 检查和更改这些 MBean 属性。作为开发人员,您要使用 Oracle JDeveloper 执行下列任务:
|
开发 MBean 逻辑 |
||
|
创建企业档案 (EAR) 文件,该文件包含 Web 应用程序和相关的 MBean |
||
作为管理员,您要:
|
使用 Application Server Control 部署该 EAR 文件 |
||
|
使用 Application Server Control 检查和更改该应用程序的 MBean 属性 |
||
使用 Application Server Control 更改了这些 MBean 属性之后,访问该 Web 应用程序页来执行员工数据查询和查看员工数据外观的变化。
开始讲述本教程之前,您应该已经完成了下列操作:
| 1. |
将 Oracle JDeveloper 10g (10.1.3) 安装到了本地计算机目录中。
|
| 2. |
将 Oracle Containers for J2EE 10g (10.1.3) 发布版本解压缩到了本地计算机目录中。
|
| 3. |
下载了 jmxobe 工作区框架并将其解压缩到了本地计算机目录中。
|
| 4. |
将 Java 2 Software Development Kit 1.4.2 (JSDK) 安装到了主计算机中。PATH 系统环境变量应该包括 J2SDK 安装的 bin 子录。 注意:如果下载了完整的 JDeveloper 10.1.3 Windows 程序包,则其中已经包括了 JSDK。请将您的 PATH 设置为 [jdev_install_dir]\jdk\bin\。
|
要配置 OC4J 实例并创建该 Web 应用程序使用的数据源,请执行下列步骤:
| 1. |
在命令窗口中,安装该 OC4J 示例并设置管理员口令: cd \oc4j1013\j2ee\home java -jar oc4j.jar -install 当提示输入口令时,请使用值 welcome。
|
| 2. |
要在 D:\oc4j1013\j2ee\home 目录中启动该 OC4J 实例,请在命令窗口中输入下列命令: java -jar oc4j.jar 当命令窗口中出现类似下列内容的消息时,就可以使用该 OC4J 实例了: 05/01/06 15:45:21 Oracle Containers for J2EE 10g (10.1.3.0.0) - Developer Preview 3 initialized
|
| 3. |
要访问 Application Server Control,请启动一个浏览器窗口,并输入下列 URL: http://localhost:1810
|
| 4. | 要登录 Application Server Control,请输入 User Name admin 和 Password welcome。 单击 Login。 成功登录时,将出现 Application Server Control OC4J:Home 页。
|
已经为您提供了一个带有预置 Web 应用程序的项目框架。要部署和测试该 Web 应用程序,请执行下列步骤:
| 1. | 启动 JDeveloper
|
|||||||||
| 2. | 要在 JDeveloper 中打开初始 JMX 应用程序工作区,请选择 File > Open:
|
|||||||||
| 3. | 在 Open 对话框中,找到 D:\JDeveloper\JDev1012\jdev\mywork\jmxobe 目录。选择 jmxobe.jws: 单击 Open。 如果展开该 jmxobe 工作区,它则包含下面两个项目:
|
|||||||||
| 4. | 要创建用于部署的 EAR 文件,请在 Applications - Nagivator 窗格中展开 jmxobe > App > resources 节点。然后右键单击 jmxobeapp.deploy,然后选择 Deploy to EAR file: 日志消息 Deployment 窗口显示该部署操作的结果。记住所创建的 EAR 文件的目录和文件名。 则创建了 EAR 文件 D:\jmxobe\App\deploy\jmxobeapp.ear。
|
|||||||||
| 5. | 返回显示 OC4J:Home 页并且可以看到 Administration 页的浏览器窗口: 单击 Applications 页链接。
|
|||||||||
| 6. | 在 Applications 页上,单击 Deploy:
|
|||||||||
| 7. | 在 Deploy:Select Archive 页的 Archive 部分的 Archive Location 域中输入 D:\jmxobe\App\deploy\jmxobeapp.ear。 注意:您可以单击 Browse 来导航并从文件系统目录中选择该 EAR 文件。 单击 Next。
|
|||||||||
| 8. | 在 Deploy:Application Attributes 页上,输入或选择下列域值:
单击 Next。
|
|||||||||
| 9. | 在 Deploy:Deployment Settings 页上,单击 Deploy:
|
|||||||||
| 10. | 等待部署过程成功完成: 单击 Return。
|
|||||||||
| 11. | 要运行最初的 Web 应用程序,请打开一个新的浏览器窗口,然后输入下列 URL: http://localhost:8888/jmxobe/ 单击 Query 链接。
|
|||||||||
| 12. | 查询结果窗口显示下列数据: 注意:员工数据以普通格式显示,没有颜色。再次单击 Query 链接,返回同样的数据,外观没有变化。
|
|||||||||
要创建 MBean 管理接口并扩展该 Web 应用程序,请执行以下步骤:
要通过修改 QueryServlet 以使用 FormatMBean 管理接口来扩展该 Web 应用程序,请执行下列步骤:
| 1. |
在 JDeveloper Applications - Navigator 中,右键单击 WebApp 节点: 选择 Project Properties。
|
| 2. |
在 Project Properties 窗口中,选择 Dependencies 树节点。在 Project Dependencies 列表中选中 MBean.jpr 复选框: 单击 OK。 注意:不要关闭 Project Properties 窗口。
|
| 3. | 在 Project Properties 窗口中,选择 Libraries,然后单击 Add Jar ... 单击 Open。
|
| 4. | 将 jmxri.jar 库添加到 Selected Libraries 中后,单击 OK 关闭 Project Properties 窗口: 按 [Ctrl] + [S] 保存对该项目的更改。
|
5.
|
在 JDeveloper Applications - Navigator 中,展开 WebApp > Application Sources > oracle.obe.jmx.webapp 节点。右键单击 QueryServlet.java: 选择 Open。
|
| 6. | 要在 QueryServlet.java 的 Code Editor Source 页中使用该 JMX Format MBean,请在 import oracle.obe.jmx.webapp.formatters.*; 语句后添加下列 import 语句: import javax.management.*; import oracle.obe.jmx.mbeans.*;
|
| 7. | 在 QueryServlet 类中,在 private InitialContext m_ic 声明之前声明下列实例变量: private static final String FORMATMBEAN_NAME = ":name=FormatMBean"; private MBeanServer m_MBeanServer = null; private ObjectName m_FormatMBean = null;
|
| 8. | 在 init() 方法中,要创建 MBeanServer 并动态注册该应用程序的 FormatMBean,请在创建了 InitialContext 对象之后添加下列代码行: // Create an MBeanServer and dynamically register // the FormatMBean for this application m_MBeanServer = MBeanServerFactory.createMBeanServer(); m_FormatMBean = new ObjectName(FORMATMBEAN_NAME); m_MBeanServer.registerMBean(new Format(),m_FormatMBean);
|
| 9. | 在 getSalaryFormatter() 方法中,请在 return 语句前添加下列代码,以便从该 MBean 获取工资格式选项: try
{
Long threshold = (Long)m_MBeanServer.getAttribute(m_FormatMBean,"SalaryThreshold");
String color = (String) m_MBeanServer.getAttribute(m_FormatMBean,"SalaryColor");
String symbol = (String) m_MBeanServer.getAttribute(m_FormatMBean,"SalarySymbol");
format.setColor(color);
format.setSymbol(symbol);
format.setThreshold(threshold.longValue());
}
catch (Exception e)
{
logException(e);
}
|
| 10. | 在 getNameFormatter() 方法中,请在 return 语句前添加下列代码,以便从该 MBean 获取姓名格式选项:
try
{
Boolean italic = (Boolean) m_MBeanServer.getAttribute(m_FormatMBean,"NameItalic");
Boolean bold = (Boolean) m_MBeanServer.getAttribute(m_FormatMBean,"NameBold");
String color = (String) m_MBeanServer.getAttribute(m_FormatMBean,"NameColor");
format.setColor(color);
format.setBold(bold.booleanValue());
format.setItalic(italic.booleanValue());
}
catch (Exception e)
{
logException(e);
}
|
| 11. | 在 destroy() 方法中,添加下列代码以取消注册和释放该 MBean 实例: try
{
m_MBeanServer.unregisterMBean(m_FormatMBean);
}
catch (Exception e)
{
logException(e);
}
注意:按 [Ctrl]+[S] 保存对该 QueryServlet 源代码的更改。
|
| 12. | 要编译 QueryServlet,请在 Applications - Navigator 中右键单击 QueryServlet 节点: 选择 Make。 注意:输入 [Ctrl]+[Shift]+[F9] 编译所选的文件。检查 Messages - Log 窗口 Messages 页中的结果,看是否存在下列文本行,以确认编译是否成功: Successful compilation:0 errors, 0 warnings. 消除任何编译错误,确保重新编译成功,然后再继续后面的步骤。
|
要使用 MBean 管理接口重新部署和测试该 Web 应用程序,请执行下列步骤:
| 1. |
要为该 MBean 项目创建部署配置文件,请在 Applications - Navigator 中右键单击该 MBean 项目: 选择 New。
|
||||||||||||
| 2. |
在 New Gallery 中,展开 General 节点,然后选择 Deployment Profiles 类别。在 Items 中选择 JAR File: 单击 OK。
|
||||||||||||
| 3. | 在 Create Deployement Profile - JAR File 对话框的 Deployment Profile Name 域中输入 FormatMBean: 单击 OK。
|
||||||||||||
| 4. | 在 JAR Deployement Profiles Properties 窗口中,单击 OK 接受默认设置: 选择 File > Save All 保存对 MBean 项目的所有更改。
|
||||||||||||
| 5. | 在 Applications - Navigator 中,展开 App > Resources 节点。右键单击 jmxobeapp.deploy: 选择 Properties。
|
||||||||||||
| 6. | 在 EAR Deployment Profile Properties 窗口中,选择 Application Assembly 节点。选中 J2EE Modules 部分 MBean.jpr 节点下面的 FormatMBean.deploy 复选框: 单击 OK。按 [Ctrl] + [S] 保存对该部署配置文件的更改。
|
||||||||||||
| 7. | 右键单击 jmxobeapp.deploy: 选择 Deploy to EAR file。
|
||||||||||||
| 8. | 在显示 OC4J:home 页的 Applications 页的浏览器窗口中,选择用于 jmxobeapp 应用程序的选项: 单击 Undeploy。
|
||||||||||||
| 9. | 在 Undeploy Application 页中,单击 Yes:
|
||||||||||||
| 10. | 在显示已经成功取消部署 jmxobeapp 的 Confirmation 页上,单击 Return:
|
||||||||||||
| 11. | 在 OC4J:home 页的 Administration 页上,单击 Deploy:
|
||||||||||||
| 12. | 在 Deploy:Select Archive 页的 Archive Location 域中,输入 D:\jmxobe\App\deploy\jmxobeapp.ear: 注意:您可以单击 Browse 来找到并从文件系统目录中选择该 EAR 文件。 单击 Next。
|
||||||||||||
| 13. | 在 Deploy:Application Attributes 页中,输入或选择下列域值:
单击 Next。
|
||||||||||||
| 14. | 在 Deploy:Deployment Settings 页上,单击 Deploy:
|
||||||||||||
| 15. | 等待出现 Confirmation 页,表明部署已经成功: 单击 Return。
|
||||||||||||
| 16. | 要运行更新的 Web 应用程序,请打开一个新的浏览器窗口,然后输入下列 URL: http://localhost:8888/jmxobe/ 单击 Query 链接。
|
||||||||||||
| 17. | 此时显示下列查询响应页: 注意:Name 和 Salary 列中的值应用了默认的格式。但是单击 Query 链接会启动 QueryServlet,该 Servlet 会在 Application Server J2EE container 中注册该 FormatMBean 实例。通过使用 OC4J 管理界面可以更改 FormatMBean 的属性,从而使得该 Web 应用程序显示的数据产生可视格式变化。
|
||||||||||||
| 18. | 在显示 OC4J:home 的 Applications 页的浏览器窗口中,单击 jmxobeapp 链接:
|
||||||||||||
| 19. | 在 Application:jmxobeapp 页上,Home 页显示该特定已部署 Web 应用程序的详细信息: 单击 Related Links 标头下面的 Application Defined MBeans 链接。
|
||||||||||||
| 20. | 在 Application MBeans 页上,值 jmxobeapp:name=FormatMBean 出现在 Name 列中: 单击 jmxobeapp:name=FormatMBean 链接。
|
||||||||||||
| 21. | 在 MBean:jmxobeapp:name=FormatMBean 页的 Attributes 选项卡页中,更改下列属性值:
单击 Apply Changes。 注意:显示的 MBean:jmxobeapp:name=FormatMBean 页包含一个 Information 部分,其中包含下列消息: Attributes has been updated successfully.
|
||||||||||||
| 22. | 返回运行该 Web 应用程序的浏览器窗口,其中包含了 Employees 数据页: 单击页底部的 Query 链接,重新查询员工数据。
|
||||||||||||
| 23. | 在结果 Employees 网页上,已经应用了下列格式更改:
注意:QueryServlet 已经应用了在 MBean:jmxobeapp:name=FormatMBean 管理网页上应用于属性的更改。此过程显示了管理员如何使用该 JMX MBean 来设置或获取一个设计用于与该 MBean 进行交互的应用程序的信息。
|
||||||||||||
在本课程中,您学习了如何执行下列任务:
|
安装和使用 Oracle Containers for J2EE 10g (10.1.3)。 |
|
|
使用 Application Server Control 管理控制台浏览 OC4J MBean |
|
|
扩展 Web 应用程序,以使用 JMX MBean 获取用于应用程序数据可视表示的设置。 |
|
|
使用 Application Server Control 修改 Web 应用程序 MBean 属性。 |
|
|
部署和测试 Web 应用程序及其 MBean 管理接口。 |
| 要了解有关 Oracle Containers for J2EE 的更多信息,请参见 Oracle OTN 产品页。 | |
|
有关 JMX 的信息,请参见 Sun Developer Network 网站上的 Java 管理扩展。 |
|
| 有关本 OBE 教程的问题,请在 OBE 论坛上提问。 |