`
x-ray
  • 浏览: 3815 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

lotus designer 8.5中创建JAVA代理(转自genusBIT的空间)

 
阅读更多
在开发LotusDomino数据库的过程之中,开发人员可以创建Java代理(Agent)程序,方便将 Lotus Notes Java API 和任何第三方的 Java 类库整合到 Domino 数据库中,使得 Notes 数据库具有强大的可扩展性。在 Domino Designer 8.5.1 中,集成了 Eclipse 开发环境,用于 Java 代理的开发。本文将通过一个具体的应用案例,向 Lotus Domino 开发人员介绍如何使用 Domino Designer 8.5.1 开发依赖于第三方 Java 类库的 Java 代理程序,并阐述了如何部署基于事件触发和被调度的代理程序。

应用环境分析

我们需要对一个现有的 Notes 数据库进行改造,这个 Notes 数据库中存在一系列的视图,某些视图中包含的文档包含统一格式的 Excel 附件。我们需要批量地从这些 Notes 文档中提取出 Excel 附件,并将 Excel 文件中的数据保存到DB2数据库中。

客户存在两种不同的需求,一种是手动选择需要处理的 Notes 文档,另一种则是在每个月固定的时间点执行批处理程序,将符合特定条件的 Notes 文档批量进行处理。对于这两种需求,我们都可以通过建立 Java 代理程序来实现。

使用 Domino Designer 8.5.1 创建 Java 代理

在 Domino Designer 8.5.1 中打开 Notes 数据库文件 TestNSF.nsf, 展开 Code 节点,在 Agents 节点上点击右键,在菜单中选择”New Agent”,在弹出的对话框中选择”Java”,命名为”DataExtractionAgent”。如图 1 所示:


图 1. 创建 Java Agent



系统会自动在默认包中创建 JavaAgent.java 文件,该类扩展了 lotus.domino.AgentBase 类,并重载了 NotesMain() 方法。


清单 1. Java 代理程序代码示例
public void NotesMain () {
    try {
        Session session = getSession();
        AgentContext agentContext = session.getAgentContext();
        // (Your code goes here)
    } catch(Exception e) {
        e.printStackTrace();
    }
}



使用 session 对象可以获取当前的代理程序所处的 Notes 数据库或者其他数据库对象,并调用 Notes Java API 实施数据库文档的增删改查,以及元数据的读取等操作。

agentContext对象是 Java 代理的运行环境对象,可用来获取被用户选择的 Notes 数据库文档列表等对象。当 Java 代理被触发时,AgentBase 类的 NotesMain() 方法将被调用。

接下来,我们可以在 Java 代理中继续建立其它的 Java 包和类;如果我们需要在 Java 代理程序中调用第三方的 Java API,我们可以将依赖的 Java 类库拷贝到 Notes 或 Domino 内置的 Jvm 的 lib/ext 目录下。

在 Domino Designer 中,切换到 Java 视图,发现 DataExtractionAgent 作为一个独立的 Java 项目存在,Domino Java Library 下可以看到新增加的 Java 类库,agent.jar 包含了从 Excel 文件中读取数据保存在 DB2 数据库中业务逻辑,而 db2 开头的两个 jar 包提供了操作 DB2 数据库的 API。


图 2. Java 代理程序在 Java 包视图中的显示



在 Java 视图中可以方便的完成 Java 代理程序的开发,之后可以回到 Domino Designer 视图,执行 Java 代理的测试。

选择 Code 节点下的 Agents 项,在右边的窗体中得到所有 Agent 程序的列表,右键点击 DataExtractionAgent,选择”Run”命令,则触发了该 Agent 程序的运行。


图 3. 测试 Java 代理程序



运行的结果是得到一个日志对话框提示 Agent 执行的情况。


图 4. Java 代理程序运行情况



代理被触发的方式主要分为两种,一种通过菜单调用,另一种则通过调度来实现。通过菜单调用的 Java 代理可以部署在 Notes 客户端或者 Domino 服务器;而调度的 Java 代理只能运行在 Domino 服务器上。

调试 Java 代理程序

可以使用 Domino Designer 对新建的 Java 代理程序进行调试。

首先在 Domino Designer 视图中选择 Java Agent,然后在下方的 Properties 选项卡中选择 Security 页面,选择“Compile Java code with debugging information”。


图 5. 设置 Agent 程序的调试信息



然后打开 Tools 菜单,选择 Java 调试首选项,勾选”Client Agents/Applets”,设置端口号。


图 6. 设置 Java 代理调试参数



创建一个”Remote Java Application”调试配置,如图 7 所示。选择 Host 为 localhost,Port 为 8701.


图 7. 设置远程 Java 应用调试配置



在 JavaAgent 的 NotesMain() 方法中添加断点,然后通过工具栏启动调试。


图 8. 启动 Java 代理的调试



切换到 debug 视图,发现远程 debug 的连接已经被建立。进入 Notes 客户端,触发 Java 代理的运行,进入断点,于是可以进行调试了。

Java 代理的触发机制有两种,一种是事件触发,一种是定时触发。

在 Notes 视图中调用 Java agent

在 Java 代理的基本属性页,选择运行时触发方式为”On event”,在下方的下拉列表中选择”Agent list selection”。


图 9. 设置 Java 代理程序的触发



在 Notes 视图的 Action 列表中新建一个 Action,命名为”提取数据”,编辑该 Action 的属性,使之在工具菜单中显示,双击该 Action,设置 click 事件的业务逻辑,选择在客户端运行,调用的程序为 Notes Formula:


图 10. 编写对 Java 代理程序调用的公式



在 Domino 服务器中部署定时调用的 Java 代理程序

使用 Domino Designer 完成 Java 代理的开发并部署到服务器上的 Notes 数据库中,设置调用机制为定时调用。进行保存时,弹出下面的对话框,指明当前的开发人员不具备足够的权限来部署服务器上的 Java 代理程序。

我们设置 Java 代理为定时执行的同时,还需要在 DominoServer端进行配置,打开 Domino Administrator,选择最右方的 Configuration 选项卡,选择右下方工作区中的 Security 页。将管理员的 Notes ID 加入到域”Sign or run restricted LotusScript/Java agents”中。如果 Java 代理程序需要在服务器端的文件系统写文件,则需要在 Full Access administrators 域中也加上管理员的 Notes ID. 完成修改后进行保存。


图 11. 配置 Java 代理程序在 Domino 服务器上运行的权限


总结

本文介绍了如何在 Lotus Domino Designer 8.5.1 中开发 Java 代理程序,并在 Java 代理中调用第三方的类库,另外还介绍了调试 Java 代理的方法以及部署 Java 代理到 Domino 服务器的要点,具有一定的参考价值。


分享到:
评论

相关推荐

    配置IBM Lotus Notes 8.5 Client

    配置 IBM Lotus Notes 8.5 Client IBM Lotus Notes 8.5 Client 是一种功能强大的电子邮件客户端程序,由 IBM 公司开发,用于连接 Lotus Domino 邮件服务器。本文将指导您如何配置 IBM Lotus Notes 8.5 Client,以便...

    lotus domino 8.5 NCSO.jar

    lotus domino 8.5 java 通过diiop远程调用lotus domino的jar包

    IBM Lotus Domino 8.5 服务器管理入门手册

    【IBM Lotus Domino 8.5 服务器管理入门】 IBM Lotus Domino 8.5 是一个强大的企业级服务器软件,提供电子邮件、协作工具以及自定义应用程序的平台。它最初是 Lotus Notes Server,作为 Lotus Development ...

    Lotus Domino 8.5中的DAOS备份和恢复

    "Lotus Domino 8.5中的DAOS备份和恢复" DAOS(DatabaseAnchor Object Storage)是一种基于磁盘的附件存储机制,旨在提高 Lotus Domino 服务器的存储效率和可扩展性。DAOS 通过将附件存储在独立的文件中,而不是存储...

    IBM Lotus Notes 8.5 Reviewer's Guide

    除了iCalendar源外,Lotus Notes 8.5还支持将公共Google日历中的事件导入到Notes日历中,进一步增强了跨平台的协作能力。 **1.3.4 日历视图中的水平滚动条** 新的水平滚动条功能让用户能够在查看月视图时轻松滑动...

    lotus domnio java代理传值

    在Lotus Domino Designer中,Java代理是用Java语言编写的类,这些类继承自com.ibm.domino.xsp.bridge.http.HttpService类。当你创建一个Java代理时,你需要定义一个主方法(main method),这是代理运行的入口点。在...

    Lotus Domino 8.5 ID Vault 新功能介绍及体验

    这一功能在 Lotus Domino 8.5 中得到了进一步强化,使得 ID 文件的管理和恢复更加高效和便捷。 ID Vault 的核心功能包括: 1. 自动化的 ID 文件管理:管理员在服务器上创建并配置 ID Vault,设定其适用范围和安全...

    Lotus Domino Designer 入门教程

    【Lotus Domino Designer 入门教程】 Lotus Domino Designer是IBM开发的一款强大的集成开发环境(IDE),主要用于构建和管理Lotus Notes和Domino应用程序。这个入门教程将带你深入理解这款工具,逐步掌握如何利用它...

    lotus8.5客戶端使用手冊

    《Lotus 8.5 客户端使用手册》是一份专门为初次接触IBM Lotus Notes的用户准备的详尽指南。Lotus Notes是一款功能强大的协作软件,尤其在企业级电子邮件、日程管理、任务分配和文档共享等方面表现出色。本手册旨在...

    lotus Domino BS开发 通过java 代理导出excel.doc

    在Lotus Domino中,你需要在Java代理的`NotesThread.sinitThread()`和`NotesThread.stermThread()`方法中初始化和终止Notes环境,确保与Domino服务器的交互正确进行。 一旦Excel文件生成并写入OutputStream,你可以...

    lotus domino java代理_获取传递值json

    今天,我们将讨论如何在 Lotus Domino Java 代理中获取传递值 JSON。 代理程序的作用 在 Lotus Domino 服务器上,代理程序可以用来处理用户请求,并返回相应的数据。代理程序可以用 Java 语言编写,具有很高的灵活...

    lotus domnio java代理输出html代理

    Lotus Domino是一个企业级的应用开发平台,而Java代理在Lotus Domino中被用来处理服务器端的任务,例如数据处理、业务逻辑或响应HTTP请求。在这个特定的案例中,`JQueryReportToolJavaAgent`是一个Java代理,它被...

    lotus domino notes(包括client administrator designer)8.5安装安装及配置

    在这个版本中,Lotus Domino Server是核心服务组件,Notes Client用于用户交互,而Designer则提供了一个集成的开发环境,用于创建和编辑应用程序。 首先,让我们详细探讨 Lotus Domino Server 的安装与配置。在安装...

    Lotus Designer教材

    在Lotus Designer 6.0中,开发者可以创建各种协作应用,包括电子邮件、日历、任务、联系人管理以及自定义业务流程。以下是这个教材可能涵盖的一些关键知识点: 1. **环境设置与界面**:介绍Designer的安装过程,...

    lotusnotes8.5安装与配置[汇编].pdf

    lotusnotes8.5安装与配置[汇编].pdf

    在_IBM_Lotus_Domino_Designer_中使用_Java_构建应用程序.doc

    在IBM Lotus Domino Designer中使用Java构建应用程序是一种将Java的强大功能应用于Notes/Domino环境的方法,尤其适合希望扩展其技能从LotusScript转向Java的开发者。本文由IBM的高级软件工程师Oscar Hernandez撰写,...

    lotus domnio java代理获取当前用户名

    在 Lotus Domino 中,Java 代理是可以运行在 Domino 服务器上的小程序,它可以执行特定的任务,如获取当前用户名。 在 Java 代理中,获取当前用户名是一个常见的需求。 Lotus Domino 提供了多种方式来获取当前...

Global site tag (gtag.js) - Google Analytics