站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题使用 JBoss 部署 J2EE Web 应用程序

使用 JBoss 部署 J2EE Web 应用程序

摘要: 使用 JBoss 部署 J2EE Web 应用程序

如果您有一些需要在 iSeries 上部署的 J2EE 应用程序,您不需要为 WebSphere 付费。实际上,确实有不花钱的替代方案。JBoss 是以 100% 纯 Java 实现的开放式源代码,与标准兼容的 Java 2 Enterprise Edition(J2EE)应用程序服务器。JBoss 服务器及其补充产品是在公用许可证下提供的。而且,JBoss 每月有超过 150,000 次的下载量,因此可以证明它在业界是下载得最多的基于 J2EE 的服务器。本文是一个简单的教程,说明在 iSeries 上安装 JBoss Java Web 应用程序服务器的过程。

我们决定对 Laurel 的公司(Sullivan Software 公司)使用 JBoss,以便对其 iSeries 客户作出“概念验证”。因为 JBoss 是免费提供的开放式源代码软件,所以我们从编写使用 Java Servlet、Java Server Pages(JSP)、Enterprise JavaBeans(EJB 2.0)和 Java 消息服务(JMS)技术的简单 J2EE 应用程序系统开始。Sullivan 的许多客户都是规模很小但很成功的公司,这些公司必须仔细小心地权衡它们的计算选件。从财务角度来看,JBoss 最适合它们的需要。我们对不同版本的 WebSphere、BEA's WebLogic 和 Visual Studio C#.net 有着丰富的经验,这一点有助于我们对 iSeries 上的 JBoss 作出评估。一旦我们完成对 Sullivan Software 公司的客户使用 JBoss 的简单 J2EE 应用程序,就知道某些客户可能想要购买那些应用程序并将它们移至 WebSphere 或 WebLogic 以利用那些服务器的快速应用程序工具和其它功能部件。

值得注意的是,我们决定为 JBoss 创建一个独立的环境,这是因为我们想要优化 iSeries 机器的系统资源和性能。本教程显示如何做到这一点。或者另一个方法是您可以在 QShell 会话中以交互方式运行 JBoss,但这样做对 iSeries 系统资源和性能有较严重的影响。所以应该知道用于在 iSeries 上设置 JBoss 的方法有一些替代方法,我们将在下面作出描述。

入门

在开始之前,请先检查 iSeries 系统配置。JBoss 至少需要累积 PTF 级别 SF99510 C2134510(带有最新的“组 PTF”)的 OS/400 V5R1M0。您还需要 IBM 的 Toolbox for Java(资源标识 5722JC1,*BASE 选项)、IBM Developer Kit for Java(资源标识 5722JV1,*BASE 选项)和 Java Developer Kit 1.3(资源标识 5722JV1,选项 5)。JBoss 在“Java 虚拟机”(JVM)版本 1.3 或更高版本上运行。

要安装 JBoss,转至位于 http://www.jboss.org 的 JBoss 主页以下载包含想要使用的版本的压缩文件。我们选择 JBoss-3.0.3.zip 包,因为这是当时最新的版本。现在有许多附加版本,所以您也可以选择高于 JBoss-3.0.3 的版本。版本 3.0.3 包括 JBoss Web HTTP Server 和 JSP/Servlet 引擎、EJB 和其它功能部件,需要大约 28 MB 的存储空间才能装入。版本 3.0.3 是将 Jetty 用作 Web 组件引擎的 JBoss 版本。

页面左边有一个“Downloads”链接。向下滚动至 JBOSS 3.0,然后在包下面选择“JBoss-3.0.3.zip”。在下一页将要求您选择镜像,它是用于下载的主机副本站点。可选择希望使用的任何镜像站点。双击“Download”下的文件图标,该文件将自动下载至您的桌面。

下一步是部署 JBoss-3.0.3.zip 文件并将其解压缩到 iSeries 的根目录中。为此,将网络驱动器映射至 iSeries 的根目录,然后将 JBoss-3.0.3.zip 文件从桌面复制至 iSeries 的根目录。

接着,通过输入 STRQSH 命令在 iSeries 上启动 Qshell 解释器。确保您在根目录中并使用下列命令解压缩该文件:

cd /
jar xf /where/ever/you/put/jboss-3.0.3.zip

(对于根目录中的示例,我们使用 jar xf /jboss-3.0.3.zip)

当 Qshell 环境返回美元符号('$')时表示解压缩已完成。解压缩过程将构建称为 jboss-3.0.3 的目录。切换至该目录,然后使用下列命令列示这些文件和目录:

cd jboss-3.0.3
ls

您应该会看到 5 个目录:bin、client、docs、lib 和 server。

设置 JBoss 环境

如果所有这些目录都存在,就准备使用下列步骤来为 JBoss 设置独立环境:

1.通过输入以下命令来为 JBoss 创建作业队列:
CRTJOBQ JOBQ(QGPL/JBOSS) TEXT('Job Queue
for JBoss-3.0.3')

2.通过输入以下命令来为这些作业创建运行类:
CRTCLS CLS(QGPL/JBOSS) RUNPTY(25)
TEXT('JBoss Job Class')

3.通过输入以下命令来创建要运行作业的 JBoss 的子系统描述:
CRTSBSD SBSD(QGPL/JBOSS) POOLS((1 *BASE))
TEXT('JBoss-3.0.3 J2EE application
server subsystem')

4.通过输入以下命令来为 JBoss 添加作业队列条目:
ADDJOBQE SBSD(QGPL/JBOSS) JOBQ(QGPL/JBOSS)
MAXACT(*NOMAX)

5.通过输入以下命令来为 JBoss 添加路由条目:
ADDRTGE SBSD(QGPL/JBOSS) SEQNBR(9999)
CMPVAL(*ANY) PGM(QCMD)

注意,我们对 JBoss-3.0.3 使用了缺省访问端口 8080。您的端口 8080 可能已在使用中。可通过使用“使用 TCP/IP 网络状态”命令来检查这一点,方法是在命令行上输入 NETSTAT。使用选项 3(使用 TCP/IP 连接状态)。按 F14 以显示已定义的端口号。如果端口 8080 已在使用中,查阅 JBoss Web 站点上提供的“JBoss 3.0 Quick Start Guide”文档。它包含章节的内容涉及如何更改缺省 Jetty HTTP 侦听器端口 8080 和其它 HTTP 侦听器端口属性的配置。用户应仔细阅读这一节的内容并遵循其中给出的指导。

//////////////////////////////////////////////////////////////////////////////

启动和停止 JBoss

每次在 iSeries 上启动和停止 JBoss 时,都需要一个脚本。 图 1 是称为 jboss400.sh 的程序,它用来启动 JBoss; 图 2 显示 endjboss400.sh,它用来停止 JBoss。(可在以下网址获取这些实用程序的电子版本: http://www.iSeriesNetwork.com/code )。我们在 iSeries 上的 /jboss-3.0.3/bin 目录中部署了这些脚本程序。无论是使用我们提供的脚本还是使用您自己编写的脚本,都应确保您有适当的许可权来执行 run.jar、run.sh、shutdown.jar 和 shutdown.sh 对象,这些对象在解压缩期间内置在 jboss-/bin 目录中。在 iSeries Qshell 环境中使用下列命令:

cd /
cd /jboss-3.0.3/bin
chmod uog+x run.jar
chmod uog+x run.sh
chmod uog+x jboss400.sh
chmod uog+x endjboss400.sh
chmod uog+x shutdown.jar
chmod uog+x shutdown.sh

此外,我们强烈地建议您安装 Ant,它是一种构建工具实用程序,用于创建、编译和部署 JAR、WAR 和 EAR 文件。它也是免费提供的。您可在以下网址下载 Ant 1.5:http://jakarta.apache.org/。您应将它安装在 iSeries 上的 IFS 根目录中。

现在准备激活 JBoss。可使用以下命令启动它,就象图 3 中显示的那样:

SBMJOB CMD(QSH CMD('/jboss-
3.0.3/bin/jboss400.sh'))
JOB(GOJBOSS400) JOBQ(QGPL/JBOSS)
CPYENVVAR(*YES) ALWMLTTHD(*YES)

当您想要取消激活 JBoss 时,使用以下命令:

SBMJOB CMD(QSH CMD('/jboss-
3.0.3/bin/endjboss400.sh'))
JOB(ENDJBOSS) JOBQ(QGPL/JBOSS)
CPYENVVAR(*YES) ALWMLTTHD(*YES)

激活后 JBoss 要 10 分钟的时间才能完全起作用。启动和关闭脚本都会产生假脱机文件(类似于图 4 中的情况),您可在该文件中观察 JBoss 在后台都做了些什么。

这就是全部的内容。如果您遵循了这些指示信息,现在您就拥有了在 iSeries 上运行的完整的 J2EE 应用程序环境 - 它是免费的。您所需要做的就是在 EJB 中部署某些业务逻辑,然后您应可以开始在 iSeries 上进行 Java 编程了。

我们实际的实现

对于我们的客户,一家抵押公司,J2EE Web 应用程序的原型运行得很好。客户很满意 Web 应用程序在计算房屋贷款率及通过 JSP 生成的 HTML 页显示数据库信息的能力。Sullivan Software 公司的程序员从学习使用“EJB 查询语言”(QL)的 EJB 2.0 技术和使用“容器管理的关系”(CMR)技术的“容器管理的持久性”(CMP)bean 中受益。至少,我们得到的好处是获得了在 iSeries 上使用 JBoss 的经验,而客户得到的好处是获得了 Java Web 应用程序服务器而省去了安装 WebSphere 或 WebLogic 的费用。尽管那两个应用程序服务器产品都包含非常有价值的附加工具和功能部件,但对于较少的 IT 预算,JBoss 是个很经济的备用方案。

如果对有关 JBoss 的更多信息有兴趣,建议阅读 JBoss Administration and Development(ISBN:0672323478)(SAMS Publishing,2002)一书,该书的作者是 JBoss Group 的 Scott Stark 和 Marc Fleury。

Kenneth Sablan Unpingco 和 Laurel Sullivan 都是 Sullivan Software 公司的软件开发者和顾问。他们自 1989 以来在一起从事 AS/400 和 iSeries 方面的工作。Ken 在过去的 12 年里使用 RPG III、RPG ILE 和 CLP 编程技术在 AS/400 和 iSeries 上进行编程。他是经 Sun 认证的 Java 程序员且具有“管理信息系统”的 M.B.A. 学位。可通过以下电子邮件地址与他联系: kenu@sullivansoftware.com。Laurel 自 1983 开始从事 S/36、AS/400 和 iSeries 上的业务应用程序方面的工作。她也是经 Sun 认证的 Java 2 程序员。可通过以下电子邮件地址与她联系:loris@sullivansoftware.com 。



↑返回目录
前一篇: 基于 J2EE 体系实现多层结构 Blog 平台
后一篇: 在JBOSS,TOCMAT上部署J2EE应用