`
chanshui
  • 浏览: 82911 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用 Lotus Notes 和 Eclipse 管理和运行 Java 程序

阅读更多
利用 Eclipse IDE 为 Lotus Notes/Domino 开发 Java 代理。下载并安装 Eclipse,然后 解使用 Eclipse 创建项目、调试 Java、重构代理以及将代理导入 Domino Designer  何等轻松。
Java 和 Lotus Notes/Domino  理想 开发组合。将它们组合  起,可以使 Notes/Domino 开发 员充分利用其常用开发环境 Domino Designer 中目前可用 所  Java 代码和包。

Eclipse 大概 最好 集成开发环境之 ,它提供 非常丰富 特性,其中包括上下文相关操作、视图、富调试程序(rich debugger)和重构。重构可以将 Java 代码重新命名、移动、添加和提取到新 方法中,以减轻清除初始编码尝试 工作量,使其简洁易读,并使其成为您要向其他开发 员显示 代码。对许多开发工作来说,重构  Eclipse 最好  项功能。

  调试 Lotus Notes/Domino 7 中  Java 代理 能力,现 就可以协调 Lotus Notes/Domino 和 Eclipse,为 Notes/Domino 应用程序创建设计优良 可调试 Java 代理项目。

进行任何 Lotus Workplace 开发都需要确实 解 Eclipse  如何工作 。Lotus Notes/Domino 7 提供  个现 开始学习 Eclipse  极好理由,既将它用于 Notes/Domino   些操作,增加将来也可以应用于 Lotus Workplace 项目 技能。

本文讲述 如何安装 Eclipse,如何为 Lotus Notes/Domino 创建项目,以及如何将这个项目导入 Domino Java 代理中,然后调试该代理。本文还提供 调试这些代理  些技巧和可能遇到 陷阱。

安装 EclipseWebSphere Studio Application Developer  基于 Eclipse  ,所以如果安装  Eclipse,就可以随同本文 解如何使用 WebSphere Studio Application Developer。如果没 安装 Eclipse 或 WebSphere Studio Application Developer,那么您需要先获得这两个应用程序。Eclipse 可以从 Eclipse 基础网站免费下载。WebSphere Studio Application Developer  试用版也能找到。

下载 Eclipse 或 WebSphere Studio Application Developer。Eclipse 很容易安装;Eclipse   Web 站点上 安装说明。下载 用于 Windows   zip 文件之后,需要运行 eclipse.exe 文件。WebSphere Studio Application Developer 比较复杂。请参考相应文档,以获得安装说明。

注意:下面 步骤讲述   Eclipse 3.0。如果您安装  Eclipse  其他版本,可能会发现用户界面以及步骤 本文中讲述  所 同。

Eclipse 和 Rational ClearCase 源代码控制如果要集成 Eclipse 和 Rational ClearCase 源代码控制系统,可以下载并安装 IBM Rational ClearCase SCM adapters for Eclipse 2.11。否则,默认源代码控制系统  CVS。

  Eclipse 中创建新  Java 项目安装  Eclipse 和所 插件后,现 就可以创建项目,并以此作为 Notes/Domino 工作 开始。必须  个项目内存储所  Java 代码。 工作区中可以 多个项目。 计算机中还可以 多个工作区,可以使用 eclipse.exe   –data 开关来指向 同 工作区。

要创建新  Java 项目,需要打开 Eclipse,选择 File - New - Project。然后  New Project 对话框中选择 Java Project,最后单击 Next。

图 1. New Project 对话框

输入项目名称,然后单击 Finish。创建 项目后,要更改项目属性中 路径,使其指向 Notes.jar 文件。右击 Package Explorer 附签中 项目并选择 Properties。  Properties 对话框中,选择 Java Build Path,然后选择 Libraries 附签。单击 Add External JARs 按钮,导航到 Notes.jar 文件,以将其添加到类路径中。

图 2. Properties 对话框

添加  JAR 文件之后,可以使用项目中 Notes Java API 定义 类和接口。Domino Designer on-line help 中 关于 Notes Java API  文档。

接着,需要下载 Sun 1.3.1 JRE。或者,如果计算机上安装  Domino 服务器,可以使用该服务器  JVM。Notes 客户机和 Domino 服务器应该 匹配 ,以确保构建项目所用  JVM  从服务器任务或代理服务器任务调用时代理和程序将运行  JVM 相同。

Lotus Notes/Domino  当前版本使用   Java 1.3.1,所以必须安装该软件以使用正确 版本来构建项目。(Lotus Notes/Domino 7 使用 JDK 1.4。)虽然许多 Java 代理和程序都可以编译,而且没什么问题,但可能会陷入另 些问题,比如使用 个 JDK 版本构建程序,却 另 个版本上运行。如果安装  Eclipse 3.0,因为它 基于 Java 1.4.2  ,所以需要删除 JDK System Library 并创建 个新库来指向 JDK 1.3.1 安装。要进行这项操作,需要选中 Libraries 附签  Properties 对话框中  JRE System Library,并单击 Remove。

要添加新库,可以单击 Add Library 按钮。  Add Library 对话框中,选择 JRE System Library,然后单击 Next。选择 Alternative JRE 选项(如果尚未选择)。然后单击 Installed JREs 按钮。单击 Add 并完成 Add JRE 对话框来添加 JDK 1.3.1。

图 3. Add JRE 对话框

保存对项目 更改。

创建第 个 Java 代理Domino Designer  开始时会自动为您填充第 个 Java 代理。 过,Eclipse  会这样,所以它需要创建新类,来实现正确  AgentBase 接口,获取 Domino 会话和 agentcontext 对象。可以使用 Domino Designer 中 代码作为指导。

图 4. Domino Designer Java 代理

将骨干 Java 代码从 Domino Designer 直接复制到 Eclipse 项目中 新类中。 们建议您创建新 包,并于其中存储代理。这将 助于组织项目,并且这符合 般 Java 设计原则。要创建新 包,可以选择 File - New - Package。

图 5. New Java Package 对话框

 们创建名为 com.ibm.NotesJava.agents  包,因为   IBM 工作,并且这  们  Notes Java 项目。 们将 这个包中存储代理。可以看到 其他常见包  com.sun.*、org.apache.* 和核心 Java 语言函数  java.lang.*。至于如何组织包  整套原则,但这  本文讨论范围内,重要   要将代理和代码放 默认包中,因为这个包杂乱且 专业。

现 已经  新包,所以可以创建新  Java 类。要  Eclipse 中创建新  Java 类,可以选择 File – New – Class。Eclipse  效率非常高,所以如果已经选择 包,那么 Eclipse 将填充包名称。可以 这里添加名称和超类 。对于 Notes 代理,超类必须始终  lotus.domino.AgentBase。  Domino Designer 中,该操作 自动进行 ,但  Eclipse 中,必须手工完成这项操作。

图 6. New Java Class 对话框

 创建类之后,就可以输入剩余 代理代码,从而使其看起来  Domino Designer 示例中 代理 样。

图 7. Eclipse 中  JavaAgent

构建代理时,将 包目录中创建 JavaAgent.class 文件。现 已经  类文件, 们可以将其导入 Domino Designer 中 代理中,并  Eclipse 中管理代码。  Domino Designer on-line help 中,请参阅“Import Java”主题,以获取更多信息。 将文件导入代理中之后,当调用该代理时,可以运行已经编写  Java 代码。现 就可以使用 Eclipse 调试程序来调试该代码 。

调试 Java 代码Eclipse 封装  Java 调试程序,使您能够遍历和更改变量,监视项并  Java 代码中添加断点。第 步  调试模式下加载 Lotus Domino 中 JVM。这样可以强迫 JVM 停止,等到附加 调试程序后再继续进行其操作。Lotus Notes/Domino 6 或之后 版本中包含这项功能,要启用该功能,可以添加 Notes.ini 变量 JavaEnableDebug=1,然后重新启动服务器。

下 阶段  服务器上运行代理,并等待服务器冻结代理 执行。 冻结代理 执行之后,JVM 将等待调试程序附加到 TCP/IP 端口 9788。

打开 Eclipse 和项目。选择 Run - Debug 来打开 Debug 对话框,然后选择 Remote Java Application,单击 New 创建新 调试会话。最后,  Connect 附签中,指定服务器 主机名称,如果服务器 所调试 计算机上,则指定本地主机 名称。

图 8. Debug 对话框

对于高级用户,可以按如下所示改变端口号和调试设置:

JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000
Suspend=n 没 冻结服务器来等待调试连接,所以可以错过代理 启动。该调试设置允许您将额外参数传送给服务器中  JVM 调试程序。如果您 自己喜欢 设置,也可以 这里使用。

最好 代理代码中已经设置 断点。当 调试模式下使用 Eclipse 将代码附加到服务器时,它应该会自动断开,并允许您检查变量,设置其他断点,执行需要使用 其他所 调试任务。

其他 Eclipse 指针现  Eclipse 中已经  项目,它提供  Domino Designer 内大型 Java 项目所没  许多增强开发和组织任务。Domino Designer 适用于较小  Java 任务,比如获取或设置多个值或简单 报表。 过, 旦开始将代码分入 同 包、定义接口并将工作委托给其他 ,项目管理会变得更复杂。

Eclipse 包含用于协同工作 内置工具,其中包括 CVS 源代码控制集成。Rational ClearCase 源代码控制插件允许您附加到 ClearCase 中存储  Eclipse 项目中。它提供 自动或即时 代码检入和检出、简洁 修饰符,从而可以轻松地标识源代码控件中 对象及其状态。

Eclipse 中另 项非常 用 功能 可以重构项目。例如,可以选择代码  部分并将其移至它自己 方法中。如果您  个非常长 方法,想将其分入较小 步骤中,那么可以将这项操作自动化,Eclipse 能够帮助您实现该自动化。下列代码片断  个重构示例:

Initial functionpublic void NotesMain() {try {Session session = getSession();AgentContext agentContext = session.getAgentContext();Database db;// I am running this, use the server - or it can assume it is localif (session.getUserName().equals("CN=Ian Connor/OU=Westford/O=IBM") == true)db = session.getDatabase("support/iris","support/retain.nsf");elsedb = session.getDatabase("","support/retain.nsf");System.out.print(db.getFileName());} catch(Exception e) {e.printStackTrace();}}可以选择要移至其自己 函数 代码部分,然后选择 Refactor - Extract Method。这将确定需要传送 参数和应该返回 数据。您所需要做 就 选择方法名称。然后可以预览更改,查看要进行 操作。这将 助于您更好地组织代码,使试图 解代码 其他 更容易维护代码。正如所 开发 员都知道 ,包含较短函数 、简洁 、组织良好 代码基数(code base)要比非常长 、似乎 会结束  1000 行函数容易使用得多。

public void NotesMain() {try {Session session = getSession();AgentContext agentContext = session.getAgentContext();Database db;db = getRetainDatabase(session);System.out.print(db.getFileName());} catch(Exception e) {e.printStackTrace();}}private Database getRetainDatabase(Session session) throws NotesException {Database db;// I am running this, use the server - or it can assume it is localif (session.getUserName().equals("CN=Ian Connor/OU=Westford/O=IBM") == true)db = session.getDatabase("support/iris","support/retain.nsf");elsedb = session.getDatabase("","support/retain.nsf");return db;} 重构 所 开发工作 基础部分。 们总  愿意立即共享代码 第 个 cut。 使用新  API 或新 工作方式时更 如此。先 花费大量时间编写  小部分代码,以测试其如何工作,然后当可以运行该代码时,将停下来适当组织代码,使查看该代码  能够看懂。

结束语Eclipse   Notes 开发 员可以 其当前和将来项目中使用 非常 用 平台。它可以帮助开发 员更好地组织项目, 小组中 其他 共享代码,并更好地利用 Java 设计技术,如接口和代码分隔。随着 Lotus Workplace 和 Lotus Notes/Domino  集成度越来越高,Java 和 Eclipse 将发挥重要 作用。Notes 开发 员现 可以凭借自己 合并和群件技能进行构建,同时还要准备应付未来 挑战。

新 产品或工作方式必须具  些重要功能和优点,才能确保 们愿意采用该产品或方式。对于必须提交编写得很好 、提供优质 Java 代码 应用程序  Notes 开发 员来说,Eclipse 提供 调试、重构和源代码控制。所 这些 任何重要 开发工作中都 重要 功能,它们将确保 得到 成果相比,您花费时间学习如何使用 Eclipse 进行 Notes 开发 非常值得 。

,
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics