Quartz Job Scheduling Framework[翻译]第十三章. Quartz 和 Web 应用 (第一部分) - 隔叶黄莺 The Blog of Unmi - BlogJava

来源:百度文库 编辑:神马文学网 时间:2024/04/29 05:57:09
第十三章. Quartz 和 Web 应用
到目前为止,我们与 Quartz框架的交互主要还是通过命令行。对于有些使用者,比如我的一个大学计算机科学老教授(它曾每天都告诉我说,"GUI是给能力差的人用的!"),使用命令行让他们很乐意接受。当应用程序被开发完成后,它们常要移交给终端用户或支持团队。在命令行应用程序上层架设一个GUI 前端会非常有帮助也是很增值的。本章记述如何在 Web 应用中用 Quartz 来使得部署和维护 Job 更轻松。
一.在 Web 应用中使用 Quartz
至此,你已经看到过许多在 J2SE 环境中独立运行的 Quartz的例子。在第十章,"J2EE 中使用 Quartz",你也学到了 Quartz 良好的运作于 J2EE环境中。但是,我们还没有向你介绍的是如何部署 Quartz 到一个 Java Web 应用(通常简写为 Web app)中。这就是本章唯一意图
你也许有几个理由想把 Quartz 集成到 Web 应用中。其中一些很显然的理由如下:
·使用 GUI 界面部署和运行Job
·改善 Job 的管理和监控
·使更易于多人部署 Job
·能从你的Web 应用内部来部署 Job
当然,在 Web 应用中使用 Quartz  主要原因还是允许通过 GUI 界面部署和维护 Job更简单。第二个原因包括更好的管理已运行和已部署的 Job,还有当有故障时能更快得到通知。大体上,你想在其他任何软件程序之上放置一个 GUI界面的理由也能通行于使用了 Quartz 的应用: 使更易于使用程序。
二. 集成 Quartz
幸运的是,有两方面使得很轻松集成 Quartz 到一个 Web 应用中。首先,Quartz框架所需要的第三方库用起来相当简单。大多数所依赖的第三方库已经包含在任何 Java Web 应用中,尤其是像 Apache Struts那样的由开源框架构建的组件。当部署 Quartz 到 Web 应用中时,Quartz 需要以下第三方库:
·CommonsBeanUtil
·Commons Collections
·Commons Logging
·Commons Digester
假如你先前构建过 Java Web 应用,你应当见识过以上列出的所有组件。还有一些别的JAR 包也可能是必须的,这要依赖于你对 Quartz 确切的部署。例如,假如 Quartz 要存储 Job 信息到数据库中,那样标准的JDBC API 库(jdbc2_0-stdext.jar) 就是必须的,一起也可能要用到 Java 事物 API(jta.jar)。
你可能也需要一些可选的库,这依赖于你的总体需求。例如,如果你的应用需要发送 e-mail,你就需要 activation 和 JavaMail 库。但是这与你是否部署Quartz 在一个 Web 应用还是作为一个独立的程序都是一样考虑的。
·Web 应用的结构
经历了过去的几年之后,Servlet 和 JSP 规范已得到改善,并允许更好的在不同的工具提供商之间移植。这在 Java开发者社区中有着一种安定的效果,也让 Web 开发者把精力聚焦在 "真正的" 业务需求,而不用太关注应用的部署和运行的细节。
·安装 Quartz 库
像在任何其他的Java Web 应用中一样,Servlet 规范指示了所有的 JAR 文件(第三方或别的) 必须放置于 WEB-INF/lib 中。因此,其中第一个步骤就是把 quartz.ar和他所依赖的 JAR 文件放到 WEB-INF/lib 目录中。
留 意 JAR 包版本和位置
你必须关心的不仅是要把哪些 JAR 文件放到 Web 应用中,还要注意使用什么版本的 JAR 包和确切的放置目录。随着开发社区的不断成熟,更多的持续集成发生在各个独立的项目之间。因此某一个项目依赖于另一个项目过期版本的事情也时有发生。在升 级到库的新版本前请确保检查依赖性。
另一个请记住的事情是要把库安放到哪里,这是非常重要的(有时也很令人困惑的)。所幸的是,Web 容器提供商开始遵循着相近的规范,开发人员也变得更有学识。对于 Web 应用,你几乎总是要安装一些第三方包(因你的应用需求而定) 到 WEB-INF/lib 目录中。与 XML  解析器和像 Sun Java 安全套接字扩展(JSSE) 那样的加密包的问题仍然会冒出来,但这些问题随着商业和开源提供商更新他们的发行版时会变得更少。
·选择一个 Web 应用框架
这完全由你来选择用哪个 Web 应用框架来与 Quartz集成。如此多框架可选择,以致于着实无法明确的选用哪个。要说某个框架优于另一个那是很主观的,因为太多的关乎于你的需求和技术的东西。然而,有几个Web 框架已被一段时间所证明了的。一个例子就是 Apache Struts 框架(以前是以 Jakarta Struts著名)。因本节的用意,我们将使用 Struts 框架来演示如何与 Quartz 集成。