当前页面: 开发资料首页 → Eclipse 专题 → 集成 DB2 与 Apache Geronimo
集成 DB2 与 Apache Geronimo
摘要: Apache Geronimo 是部署 Java 2 Platform, Enterprise Edition (J2EE) 应用程序的一个很受欢迎的新的替代方案。IBM DB2 是一个成熟的关系数据库产品,非常适用于 J2EE 环境。IBM 软件工程师 Emilio Zegarra 将详细介绍如何将这两个产品集成到 J2EE 应用程序中。本教程将学习如何开发和部署连接到 DB2 数据库的应用程序,并获得设置环境所需的配置文件。了解如何使用 Eclipse 和 Web 工具平台 (WTP) 插件项目组合应用程序所需的不同组件,最后,将学习如何部署应用程序和 DB2 配置。
概述:Apache Geronimo
Apache Geronimo 项目成功构建了一个开源的、J2EE 兼容的应用服务器。该应用服务器非常强大可靠,这得益于它将一些现有的开源项目重新使用,作为其实现的一部分。从某种意义上说,Apache Geronimo 应用服务器是几个开放源码项目的集合。例如,表 1 提供了组成 Apache Geronimo 的一些开放源码项目的列表。
<table border="0" cellpadding="0" cellspacing="0" class="data-table-1" summary="Table using a caption tag, all columns left-aligned" width="50%">
表 1. Apache Geronimo 中的主要开放源码项目<tr><th>技术</th><th>开放源码项目</th></tr><tr><td class="tb-row">Enterprise JavaBeans (EJB) 容器</td><td>Open EJB</td></tr><tr><td class="tb-row">Web 容器</td><td>Jetty, Tomcat</td></tr><tr><td class="tb-row">Java Messaging Service (JMS) 消息传递</td><td>Active MQ</td></tr><tr><td class="tb-row">Lightweight Directory Access Protocol (LDAP)</td><td>Apache Directory</td></tr></table>
以下产品用于示例应用程序的开发或部署:
- Apache Geronimo Application Server, Version 1.0(请参阅 参考资料,从中获得下载信息)
- IBM DB2 Universal Database™, Version 8.2
- Eclipse, Version 3.1(可选)
- Eclipse Web Tools Platform 插件项目的 0.7.1 版(可选)
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
</td></tr></table><table align="right" cellpadding="0" cellspacing="0" class="no-print"><tr align="right"><td>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle">
</td><td align="right" valign="top"></td></tr></table></td></tr></table>
关于示例应用程序
本文中使用的示例应用程序是一个具有已定义的 JavaServer Pages (JSP) 的 Web 模块应用程序,用于演示 DB2 与 Apache Geronimo 的集成。该 JSP(名为 references.jsp)将查询数据库中可用的 Apache Geronimo 引用的表,如 图 1 中所示。
当 JSP 从数据库中获得数据之后,它将以制表形式将此数据展示给请求客户机。在为服务器部署应用程序之前,必须完成数据库配置。为了实现这一点,需要制定一个数据库部署计划。然后使用此部署计划,在用于将要使用的应用程序的 Apache Geronimo 服务器上部署 DB2 数据源定义。
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
</td></tr></table><table align="right" cellpadding="0" cellspacing="0" class="no-print"><tr align="right"><td>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle">
</td><td align="right" valign="top"></td></tr></table></td></tr></table>
设置开发环境
要开发应用程序和资源,则需要使用 Eclipse 集成式开发环境 (Eclipse Integrated Development Environment, IDE) 工具。要构建应用程序,则需要使用 WTP 插件。此插件使文件编辑变得又快又容易。(关于下载和安装 Eclipse, Version 3.1 和 WTP 的指令,请参阅 参考资料。)
对于本文,可以使用 0.7.1 版的 WTP 和 3.1 版的 Eclipse。如果不喜欢安装这些产品,可以使用您所喜爱的 IDE 来构建这些资源。不过,描述如何构建资源的章节假定您安装了这些产品。
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
</td></tr></table><table align="right" cellpadding="0" cellspacing="0" class="no-print"><tr align="right"><td>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle">
</td><td align="right" valign="top"></td></tr></table></td></tr></table>
Geronimo 部署计划
J2EE 应用程序不提供在 J2EE 平台中实现所有这些组件的细节。因此,J2EE 服务器供应商必须提供自己的应对解决方案,使自己不被这些规范所束缚。Apache Geronimo 团队使用部署计划来应对这些限制,并向服务器提供有关服务器上已配置资源的信息。要获得有关组成部署计划的、可在
%GERONIMO_HOME%/schema 文件夹中使用的元素的细节信息,请参阅提供的不同 XML 方案。
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
</td></tr></table><table align="right" cellpadding="0" cellspacing="0" class="no-print"><tr align="right"><td>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle">
</td><td align="right" valign="top"></td></tr></table></td></tr></table>
步骤 1:定义数据源
在连接到数据源之前,需要向 Geronimo 提供 Java Database Connectivity (JDBC) 驱动程序。位于
%GERONIMO_HOME% 文件夹中的 repository 文件夹用于向服务器提供库。将资源库添加到储存库是一个由三个步骤组成的过程。
- 使用库的名称创建一个新的文件夹,并在该文件夹下定义一个
jars
文件夹。 - 将库复制到 jars 文件夹。
- 提供一个库版本号。这一步可以通过只重新命名库文件来实现。
在我们的示例中,连接到 DB2 的 JDBC 驱动程序将使用三个 .jar 文件。在复制库之后,将数据库服务器的版本号追加到其名称后面。因此,物理储存库的定义看起来与 图 2 类似。
在已经将这些库添加到运行库中之后,为 DB2 数据源制订一个部署计划,如 清单 1 中所示。注意,从属条目指 repository 文件夹下定义的 JDBC 驱动程序库。这里有几个文件,需要为每个文件提供一个条目。此外,configId
参数提供了一个用于 DB2 数据源的名称。在将 Web 模块映射到此数据源时,将使用此名称。
清单 1. DB2 数据源部署计划 <table border="1" cellspacing="0" cellpadding="5" width="100%" bgcolor="#eeeeee"><tr><td>
<?xml version="1.0"?>
db2/db2jcc/8.1.7/jar
db2/db2jcc_license_cisuz/8.1.7/jar
db2/db2jcc_license_cu/8.1.7/jar
javax.sql.DataSource
DB2Database
system
manager
com.ibm.db2.jcc.DB2Driver
jdbc:db2://peru.pittsburgh.ibm.com:50000/db2
true
org.tranql.connector.NoExceptionsAreFatalSorter
10
0
5000
30
</td></tr></table>
要为数据源创建部署计划,则需要使用 Eclipse 的 XML 编辑功能:
- 通过选择 File > New > Project,创建一个用来保存部署计划文件的项目。
- 输入
DeploymentPlans
作为项目名称并单击 Finish。 - 通过选择 File > New > File,然后选择 DeploymentPlans 作为父文件夹,并输入
db2-plan.xml
作为文件名,创建用来定义数据源的部署计划文件。 - 单击 Finish。
- 当编辑器打开时,剪切 清单 1 的内容并将它粘贴到编辑器中。
- 选择 File > Save 来保存文件。
- 导出此部署计划,以便以后为某一服务器部署该计划。在 Project Explorer 视图中展开 Other Projects >
DeploymentPlans 并选择 db2-plan.xml。
- 右击该文件,然后选择 Export > File System > Next。
- 在 To Directory 字段中输入
%GERONIMO_HOME%/plans
。如果 plans 目录不存在,则创建该目录。 - 单击 Finish。
现在已经为 DB2 数据源创建了部署计划并准备安装它。不过,在继续后面的操作之前,需要构建应用程序,以便能够同时部署所有事情。
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
</td></tr></table><table align="right" cellpadding="0" cellspacing="0" class="no-print"><tr align="right"><td>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle">
</td><td align="right" valign="top"></td></tr></table></td></tr></table>
步骤 2:创建 Web 模块应用程序
要使用 DB2 数据源连接,则必须开发一个由简单的 JSP 组成的 Web 模块。该 JSP 文件将查询 DB2 数据源并获得可用引用的列表,以了解有关 Geronimo 应用服务器的更多信息。在从数据源中获得该列表之后,该列表将以制表形式显示数据。
- 创建 Web 模块:
- 选择 File > New > Project。
- 展开 Web 文件夹,然后选择 Dynamic Web Project 并单击 Next。
- 输入
GeronimoReferences
作为名称并单击 Finish。
- 创建 JSP:
- 选择 File > New > Other。
- 展开 Web 文件夹,然后选择 JSP 并单击 Next。
- 输入
references.jsp
作为文件名。 - 选择 GeronimoReferences/WebContent 作为父文件夹。
- 单击 Next。
- 取消对 Use JSP Template 的选定并单击 Finish。
- 当用于 references.jsp 的编辑器打开时,输入 清单 2 中所示代码。
JSP 文件首先查找一个数据源,然后创建一个新的连接。在创建连接之后,将创建一条语句并执行一个查询。然后某一表将在 JSP 中显示查询的结果。
清单 2. references.jsp 的内容<table border="1" cellspacing="0" cellpadding="5" width="100%" bgcolor="#eeeeee"><tr><td>
<head>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"
import="java.sql.*,javax.sql.*,javax.naming.*;"%>
<%
DataSource ds = null;
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
Context ctx = null;
String query = "SELECT REFNAME, REFURL FROM REFERENCES";
ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/myds");
conn = ds.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery(query);
%>
Geronimo References
</head>
<body>
Geronimo References
List of sites with information about the Geronimo Application Server.
<table border="1">
<tr>
<th>Title</th>
<th>URL</th>
</tr>
<%while (rs.next()) {%>
<tr>
<td><%=rs.getString(1)%></td>
<td><%=rs.getString(2)%></td>
</tr>
<%}
rs.close();
stmt.close();
conn.close();%>
</table>
</body>
</td></tr></table>
- 更新 Web 部署描述符,并添加用于数据源的资源引用:
- 转换到 J2EE 透视图。
- 在 Project Explorer 视图中展开 Dynamic Web Projects > Geronimo References,并双击 Geronimo References。这将打开 Web 模块的部署描述符。
- 在 清单 2 的 JSP 代码中,访问数据源是通过查找资源引用来执行的。资源引用必须在应用程序的部署描述符中定义。使用 清单 3 中所示的资源引用定义来更新部署描述符。
清单 3. 指定 Web 模块部署描述符 WEB-INF/web.xml 中的数据源资源引用<table border="1" cellspacing="0" cellpadding="5" width="100%" bgcolor="#eeeeee"><tr><td>
jdbc/myds
javax.sql.DataSource
Container
Shareable
</td></tr></table>
- 将资源引用绑定到部署的数据源。
要告诉 Geronimo 应用服务器如何将资源引用绑定到部署的资源,则需要使用 Geronimo 部署计划。每种模块类型和应用程序都有一个部署计划。对于 Web 模块,部署计划的名称是 geronimo-web.xml。除了标准部署描述符之外,还需要在将应用程序部署到服务器时提供一个 Geronimo 部署计划。要创建部署计划,请执行以下这些步骤:
- 选择 File > New > File。
- 选择 Geronimo References > Web Content > WEB-INF 作为父文件夹,并输入
geronimo-web.xml
作为文件名。 - 输入 清单 4 中所示内容。
清单 4. Geronimo 的 Web 模块部署描述符 WEB-INF/geronimo-web.xml<table border="1" cellspacing="0" cellpadding="5" width="100%" bgcolor="#eeeeee"><tr><td>
<?xml version="1.0" encoding="UTF-8"?>
/GeronimoReferences
jdbc/myds
DB2Database
</td></tr></table>
Geronimo 的 Web 部署计划允许将 Web 部署描述符中定义的数据源资源引用绑定到服务器中定义的数据源资源。在为数据源创建部署计划时,为该数据源分配了一个配置 ID。提供给数据源的配置 ID 是确定资源引用与资源本身之间的映射关系的 ID。
- 导出 Web 模块应用程序。
- 在已经定义所有资源之后,必须导出 Web 应用程序,以便在服务器上部署它。在 Project Explorer 视图中右击 Dynamic Web Projects > GeronimoReferences,然后选择 Export。
- 选择 WAR File 并单击 Next。
- 选择 GeronimoReferences 作为 Web 模块,浏览到 %GERONIMO_HOME%/applications/GeronimoReferences.war 作为目的地,并单击 Finish。
现在已经为给服务器部署应用程序和 DB2 部署计划做好了准备。
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
</td></tr></table><table align="right" cellpadding="0" cellspacing="0" class="no-print"><tr align="right"><td>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle">
</td><td align="right" valign="top"></td></tr></table></td></tr></table>
步骤 3:创建测试数据库
要创建测试数据库,则需要打开 DB2 命令窗口并填充数据库。要做到这一点,请执行 清单 5 中所示命令。
清单 5. 创建 DB2 测试表<table border="1" cellspacing="0" cellpadding="5" width="100%" bgcolor="#eeeeee"><tr><td>
>db2 connect to SAS user wcc\peru
Enter current password for wcc\peru:
Database Connection Information
Database server = DB2/NT 8.2.0
SQL authorization ID = PERU
Local database alias = SAS
>db2 create table peru.references (refid varchar(10) primary key not null, \
refname varchar(50), refurl varchar(150))
DB20000I The SQL command completed successfully.
>db2 insert into peru.references (refid, refname, refurl) \
values ('0', 'Apache Geronimo', 'http://geronimo.apache.org' )
DB20000I The SQL command completed successfully.
>db2 insert into peru.references (refid, refname, refurl) \
values ('1', 'Apache Geronimo Wiki', 'http://wiki.apache.org/geronimo' )
DB20000I The SQL command completed successfully.
>db2 insert into peru.references (refid, refname, refurl) \
values ('2', 'DeveloperWorks Apache Geronimo', \
'http://www.ibm.com/developerworks.opensource/top-projects/geronimo.html' )
DB20000I The SQL command completed successfully.
>db2 commit
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
</td></tr></table><table align="right" cellpadding="0" cellspacing="0" class="no-print"><tr align="right"><td>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle">
</td><td align="right" valign="top"></td></tr></table></td></tr></table>
步骤 4:启动服务器
在开始测试并安装应用程序之前,必须启动 Apache Geronimo。要做到这一点,则需要打开 DB2 命令窗口并键入 %GERONIMO_HOME%/bin/startup
。当出现 Geronimo Application Server started
消息时,可以继续进行资源部署。(注意,必须在执行命令之前设置 JAVA_HOME 指向 Sun 1.4.2_08 JDK/JRE 或高于 1.4.2 版本的副本。)
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
</td></tr></table><table align="right" cellpadding="0" cellspacing="0" class="no-print"><tr align="right"><td>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle">
</td><td align="right" valign="top"></td></tr></table></td></tr></table>
步骤 5:部署 DB2 数据源
要部署 DB2 部署计划,则必须使用可在 Apache Geronimo 中使用的 TranQL J2EE 连接器。这一步需要使用可在 TranQL 连接器中使用的连接池。TranQL 和 .rar 文件可在 Geronimo 安装中找到,位于 repository/tranql/rars/tranql-
connector-1.1.rar 处。
要部署 DB2 部署计划,则需要键入以下所示命令。因为需要提供用户名和口令来部署应用服务器的资源,所以会用到默认用户名 system
和口令 manager
。
>java -jar bin\deployer.jar --user system --password manager deploy plans\db2-plan.xml
repository\tranql\rars\tranql-connector-1.1.rar
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
</td></tr></table><table align="right" cellpadding="0" cellspacing="0" class="no-print"><tr align="right"><td>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle">
</td><td align="right" valign="top"></td></tr></table></td></tr></table>
步骤 6:部署 Web 模块应用程序
在部署 DB2 数据源之后,就准备安装应用程序。要做到这一点,则需要再次调用 Geronimo 的部署工具,并为它提供将要安装的应用程序。在这一步中,没有明确提供部署计划;不过,部署工具会在 Web 模块和特定于 Geronimo 的部署描述符(部署应用程序时创建)中找到所需的信息。要安装应用程序,请输入以下命令:
>java -jar bin\deployer.jar --user system --password manager deploy applications\GeronimoReferences.war
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
</td></tr></table><table align="right" cellpadding="0" cellspacing="0" class="no-print"><tr align="right"><td>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle">
</td><td align="right" valign="top"></td></tr></table></td></tr></table>
步骤 7:测试应用程序
在部署 DB2 数据源和 Web 模块应用程序之后,可以测试它。要做到这一点,可以打开一个浏览器窗口并输入地址 http://localhost:8080/GeronimoReferences/references.jsp
。
您将收到一个类似 图 4 的响应。
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
</td></tr></table><table align="right" cellpadding="0" cellspacing="0" class="no-print"><tr align="right"><td>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle">
</td><td align="right" valign="top"></td></tr></table></td></tr></table>
结束语
本文提供了Apache Geronimo 的简要介绍,并演示了如何开发和部署连接到 DB2 数据库的应用程序。您应该对如何使用、定义和部署 Apache Geronimo 应用服务器上的 DB2 资源有了一个更好的了解。此外,Eclipse 和 Web Tools Project 插件的使用将演示开放源码工具所能到达的复杂级别以及为什么使用它们,这些可能在以后的几个月中详加介绍。
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
</td></tr></table><table align="right" cellpadding="0" cellspacing="0" class="no-print"><tr align="right"><td>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle">
</td><td align="right" valign="top"></td></tr></table></td></tr></table>
下载
<table border="0" cellpadding="0" cellspacing="0" class="data-table-1" width="100%"><tr><th>描述</th><th>名字</th><th style="text-align:right;">大小</th><th>下载方法</th></tr><tr><td class="tb-row">Sample files</td><td nowrap="nowrap">os-ag-db2ger.zip</td><td nowrap="nowrap" style="text-align:right;">3KB</td><td nowrap="nowrap">
HTTP|
Download Director</td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr valign="top"><td colspan="5"></td></tr><tr><td></td><td>关于下载方法的信息</td><td></td><td></td><td>Get Adobe® Reader®</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
</td></tr></table><table align="right" cellpadding="0" cellspacing="0" class="no-print"><tr align="right"><td>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle">
</td><td align="right" valign="top"></td></tr></table></td></tr></table>
参考资料 学习
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文。
- 在以下地方了解有关 Apache Geronimo 的更多信息:
- Apache Geronimo 的站点。
- Geronimo 入门(developerWorks,2005 年 9 月)。
- Geronimo Wiki。
- 关于 Eclipse 的其他信息,请参阅:
- Eclipse 的参考资料。
- The Eclipse Web Tools Platform (WTP) project。
- “创建、部署和调试 Apache Geronimo 应用程序”(developerWorks,2005 年 5 月)。
- 阅读文章 “
将数据库连接到 Geronimo 应用服务器的三种方法”(developerWorks,2005 年 6 月),获得关于在 Geronimo 中设置 JDBC 资源的额外信息。
- 获得关于 TranQL 开放源码框架的更多信息来构建持久引擎。
- 请访问 developerWorks 开放源码专区,这里有丰富的 how-to 信息、工具和项目更新,可以帮助您利用开放源码技术进行开发并将其用于 IBM 产品。
- 访问 developerWorks 的 Apache Geronimo 项目区,获得一些文章、教程和其他参考资料,帮助您现使用 Geronimo 开始进行开发。
- 在 developerWorks 的 Get started now with Apache Geronimo 版面可以找到对新手和有经验的用户有帮助的参考资料。
- 浏览 developerWorks 的开放源码专区中可用的所有 Apache 文章和免费 Apache 教程。
获得产品和技术- 下载 Apache Geronimo, Version 1.0。
- 下载 Eclipse, Version 3.1。
- 下载并安装 Web Tools Project plug-in (WTP)。
- 下载 IBM WebSphere® Application Server Community Edition, Version 1.0 的免费副本,这是一个轻量级 J2EE 应用服务器,它构建在 Apache Geronimo 开放源码技术之上,设计用于帮助您加速开发和部署成果。
- 利用 IBM Support for Apache Geronimo 提供开发 Apache Geronimo 应用程序方面的专业技术支持。
- 使用 IBM 试用软件 改进您的下一个开放源码开发项目,这些软件可以下载或者通过 DVD 获得。
讨论- 参与论坛讨论。
- 在 Apache Geronimo blog 上更新关于 Geronimo 的开发。
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
</td></tr></table><table align="right" cellpadding="0" cellspacing="0" class="no-print"><tr align="right"><td>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle">
</td><td align="right" valign="top"></td></tr></table></td></tr></table>
关于作者<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td colspan="3"></td></tr><tr valign="top" align="left"><td></td><td></td><td width="100%">
Emilio Zegarra 是位于 Pittsburgh, PA 的 IBM WebSphere Competency Center 的软件工程师。他感兴趣的领域包括 User Interface Design(他有一个这一方面的专利)、J2EE、自主应用程序和面向对象方面的开发。Emilio 目前正在 University of Pittsburgh 攻读计算机科学专业的博士学位。他从 University of Pittsburgh 获得了工业工程的硕士学位,并从 Carnegie Mellon University 获得信息技术和软件工程的学士学位。您可以通过 ezegarra@us.ibm.com 与 Emilio 进行联系。
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
</td></tr></table><table align="right" cellpadding="0" cellspacing="0" class="no-print"><tr align="right"><td>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle">
</td><td align="right" valign="top"></td></tr></table></td></tr></table>
↑返回目录
前一篇: 创建、部署和调试 Apache Geronimo 应用程序
后一篇: IBM WebSphere 开发者技术期刊 : 使用 Eclipse 富客户端平台和 Rational Application Developer V6 创建 EJB 客户端