在 Lotus Domino 中管理数据,但又要利用 IBM WebSphere 高度可伸缩的优点,事务型的 J2EE 平台使用下面这些解决方案的一种:Domino XML 或 Domino JSP 标签库。在本系列的第二篇文章中,我们将重点介绍 Domino JSP 标签库。
在这个由两部分组成的系列文章的 第 1 部分 中,我们将介绍如何使用 Domino XML(也称为 DXL)集成 Lotus Domino 和 IBM WebSphere。DXL 可以让您访问 Domino 对象,而不用了解太多有关 Lotus Domino 的知识。然而,具有一些 Java 方面的经验对于使用 DXL 方法来说也是必要的。对于那些 Java 经验很少的 Notes 应用程序开发者来说,可以使用 Lotus Domino Toolkit for WebSphere Studio 中提供的 Domino JSP 标签库。(这个工具包在 Lotus Notes/Domino 6.0.2 及更新的版本中可用,用户可以从 Passport Advantage 下载这个工具包。)
从 Lotus Domino 6 开始,Lotus 提供了两个 JSP 标签库。这两个标签库让程序员可以开发与 J2EE 兼容的应用服务器上的 Lotus Domino 进行交互的 J2EE 应用程序。在可以使用标签库之前,那些想要将自己的应用程序与 Lotus Domino 连接的 JSP 开发者必须把 CORBA 和 IIOP 调用构建在应用程序中。这导致很大的复杂性,并且经常需要使用一些特定于数据库的代码,这些代码几乎是不可重用的。随着协作能力需求的增长,需要一种更智能的、功能更强大的解决方案。
Lotus 了解到了这种需求,因此创建了两个标签库,它们对通用的 Lotus Domino 和 J2EE 功能进行了抽象和封装。这些库是在标签库描述符 domtag.tld 和 domutils.tld 中定义的。Domutils.tld 定义了处理所有 J2EE 应用程序通用的任务的工具标签。这些标签不是 Lotus Domino 特有的,可以独立于 Domino 服务器应用于任何应用程序。在 domtag.tld 中定义的标签是 Lotus Domino 特有的。它们提供了对所有的 Domino 元素的编程访问能力,包括设计、访问控制列表和文档。在本文中,我们将着重介绍 Domino 特有的标签(在 domtag.tld 中定义的标签)。从现在开始,我们就将其简称为 taglib。
开始之前
taglib 比第一篇文章中所介绍的 XML 方法需要更深入的 Lotus Domino 方面的知识。它使用了 Domino 框架中的一些专用术语和控件。为了有效地使用 taglib,重要的是您要深入理解 Lotus Domino、各种设计元素以及您要访问的数据的结构。对第 1 部分的路线图部分进行回顾可以帮助您确定这种方法是否更适合于您和您的应用程序。
需求
taglib 遵守 JSP 1.1 和 Servlet 2.2 规范,支持大部分 J2EE 兼容的应用服务器。本文中的例子要安装到 IBM WebSphere Application Server 5.1 上,并使用 WebSphere Studio Application Developer 进行开发。本文假设您熟悉 Domino 对象和术语,并且了解使用 WebSphere Studio Application Developer 进行 J2EE 编程的基本知识。
注意:如果不准备让 Lotus Domino 来处理 IIOP,在使用 taglib 时就不需要任何 CORBA 或 IIOP 编程的知识。
软件需求如下:WebSphere Application Server 5.x 或其他 J2EE 兼容的应用服务器 Lotus Domino 6.x,并且安装并启用了 DIIOP 服务
准备 Lotus Domino
taglib 使用 CORBA(Command Object Request Broker Architecture)和 IIOP(Internet Inter-ORB Protocol)技术与 Lotus Domino 进行通信。您必须设置 Domino 服务器监听 IIOP 请求。首先,确保已经安装了 DIIOP。在 Domino 终端中执行 show task 或 load diiop 命令,可以帮助判断现在是否已经安装了 DIIOP。如果还没有安装,请从 Domino 安装光盘上安装 DIIOP。
接下来,编辑 Domino 服务器的 Notes.ini 文件,设置为在启动 Lotus Domino 时自动加载 DIIOP。找到以 ServerTasks 开始的那一行。在本行的最后,添加 diiop。重新启动 Domino 服务器,并检查是否有 DIIOP 服务器的启动消息。
图 1. 在服务器启动过程中启动 DIIOP 进程
在 DIIOP 进程启动时,它在 Domino HTTP 根目录(Windows 中 Domino 默认的安装目录为 C:lotusdominodatadominohtml)中创建一个名为 diiop_ior.txt 的 IOR(Internet Object Reference)对象。如果您使用 Lotus Domino 作为 HTTP 服务器,就必须告诉 DIIOP 将这些文件放到您的 HTTP 服务器的根 HTML 目录中。