在 IBM Lotus Domino Designer 中使用 Java 构建应用程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在 IBM Lotus Domino Designer 中使用Java 构建应用程序
Oscar Hernandez, 高级软件工程师, IBM
简介:本文旨在帮助那些传统的 LotusScript 开发人员转向 Java 开发。在几乎不具备 Java 知识的情况下,本文可帮助您开始在 IBM Lotus Domino 中进行Java 应用程序开发。
简介
对于 IBM Lotus Notes 应用程序开发人员来说,LotusScript 和 LotusScript 类在设计 Notes 应用程序时很有用。LotusScript API 支持以编程方式与数据库、文档,甚至设计元素进行交互。随着 Java 发展成为主流编程语言,原来越多的 Notes 应用程序开发人员开始将目光投向 Java。
本文面向那些想要在 IBM Lotus Domino 中使用 Java 进行编程的 LotusScript 开发人员。假定读者具有一定的 LotusScript 编程经验。
本文包含三部分:Java 语言、示例和其他要素。Java 编程人员可以直接跳到示例部分,但是新手应该从 Java 语言部分开始阅读。
Java 语言
发布于 1995 年,Java 是一种面向对象的编程语言,它的出现满足了平台独立性需求。这是通过将 Java 源代码编译成字节码实现的,然后任意平台上的任何Java 虚拟机(JVM)都可以解释字节码。
因此,只要为目标平台实现了 JVM,就可以运行任何 Java 应用程序。有关更多信息,请参见“The History of Java Technology”。
Java 的语法类似于 C,而它面向对象的实现方式类似于 C++,因此 C/C++ 编程人员可以轻松掌握 Java。但是,LotusScript 开发人员可能会发现 Java 语法与 LotusScript 大不相同。
由于本文关注的是在 Lotus Domino 中使用 Java,因此所展示的示例也将在Lotus Domino 的环境中实现。
我们从经典的“Hello World”示例开始。在 Domino Designer 中创建新的 Java 代理时,会收到表 1 左栏所示的模板代码。右栏的代码已经进行了修改以适应“Hello World”示例的需要。
表 1. Hello World 示例 模板 Java 代理代码
Hello World Java 代理代码 import lotus.domino.*;
public class JavaAgent extends
AgentBase {
public void NotesMain() {
try {
Session session =
getSession();
AgentContext
agentContext=
session.getAgentContext();
// (Your code goes
here)
} catch(Exception e) {
e.printStackTrace();
}
}
}
import lotus.domino.*;
public class JavaAgent extends
AgentBase {
public void NotesMain() {
try {
Session session =
getSession();
AgentContext
agentContext=
session.getAgentContext();
// (Your code goes here)
System.out.println("Hello World!");
} catch(Exception e) {
e.printStackTrace();
}
}
}
逐行详解
我们来逐行看一下这段代码: import lotus.domino.*;
Java 使用 import 语句以包括其他 Java 类。在本例中,所有 lotus.domino 类
对于代理代码都可用。Java 类通常包含在 JAR 文件中。代理可以通过几种方式使用 JAR 文件。有关 JAR 文件的信息,请参阅本文第 4 节 “将外部 JAR 文件与 Java 代理一起使用” 部分。
public class JavaAgent extends AgentBase {
Java 是一种面向对象的编程语言。该行证明了这一点,创建 Java 代理时,它创建了 JavaAgent 类,这是在其中编写 Java 代码的主类。
可能还注意到了 JavaAgent 类扩展了 AgentBase 类。因为 Java 是面向对象的,所以扩展 AgentBase 类为我们提供了进入代理的入口点,这将我们带到了下一行。
public void NotesMain() {
NotesMain 方法是到代理的入口点。这里我们用自己的定义改写了 AgentBase 方法定义。
try {
在 Java 中,错误处理通过 try 和 catch 块进行处理。Java 中抛出异常的方法必须囊括在 try 块中,而且每一个 try 块都必须有一个相应的 catch 块。在“Hello World”示例中需要 try 和 catch 块,因为 getAgentContext 方法抛出了 NotesException。要查看哪些 Domino 方法抛出异常,请参阅 Domino Designer 帮助文件中的方法签名。
Session session = getSessiono;
AgentBase 类的 getSession 方法用于创建会话对象。Java Session 类类似于LotusScript NotesSession 类。
AgentContext agentContext = session.getAgentContexto;
AgentContext 类用于获取到当前数据库的句柄(使用其 getCurrentDatabase 方法)。在 LotusScript 中,不需要使用这个额外的类来获取到当前数据库的句柄。
//(Your code goes here)
这一行要注意的是单行注释以“//”开头。多行注释在开始和结尾处使用“/*”(类似于 C++)。
System.out.println("Hello World!");
这是用于输出到控制台的 Java 方法。要在 Notes 中打开 Java 控制台,从菜单中选择 Tools > Show Java Debug Console。System.out.println 方法类似于 LotusScript Print 方法。
} catch(Exception e) {
这是与上文 try 代码块相对应的 catch 语句。
e. pri ntStackTraceo;
在 catch 代码块中,可以按照自己的意愿处理异常;在本例中,我们只是将其输出到堆栈跟踪。
Java 语言基础知识