我在一个开发Java Swing应用程序的团队工作,现在我正在尝试帮助另一个团队将此应用程序集成到Lotus Notes中。不幸的是,我对Notes知之甚少,似乎无法找到任何与我们正在尝试做的相关的文档。
我们要做的是让用户使用从Notes传入的一些数据启动我们的应用程序,让用户使用传入的数据,然后当他们准备保存时,修改后的数据将保存回Notes数据库中。
我们使用Notes代理实现的第一部分 - 它能够启动我们的应用程序并传递原始数据 - 问题在于节省。在启动我们的应用程序的调用之后,代理似乎完成并“死”,因此当用户准备好保存时,无法在以后获得对会话/数据库的引用。其中一个Lotus开发人员通过在代理中创建一个繁忙的等待循环来使其工作,以便在启动应用程序后保持活动状态 - 但这会产生副作用,即在应用程序打开时阻止任何其他Lotus Notes使用,所以这不是一个真正可以接受的解决方案。
任何人都知道我们想做什么是可能的吗?怎么做?关于此的任何示例/文档的链接?
答案 0 :(得分:3)
一个选项是让Notes代理启动Java应用程序并允许Java应用程序异步运行;然后它可以直接写入Notes数据库(使用Notes Java API)。您可以将客户端配置为与Notes客户端共享凭据,因此进行身份验证不是问题(或者您可以让Java应用程序对Notes进行身份验证)。 Java API非常简单 - 它基本上模仿了LotusScript中可用的后端类。如果需要将结果写回特定文档,可以将NotesUniqueID(docid)从Notes代理传递到Java应用程序,然后在Java应用程序中使用它来回写。 (请参阅Database类中的GetdocumentByUnid方法)。
这篇文章有点陈旧,但我认为仍然相关: http://www.ibm.com/developerworks/lotus/library/ls-Java_access_pt1/index.html
答案 1 :(得分:3)
您可以选择将数据重新导入Lotus Notes。我认为最好的办法是使用Java API调用Lotus Notes并重新添加数据。有一个Java API的开源接口可以让生活更轻松,称为domingo。否则,请参阅domino设计员有关如何使用Java API的帮助。
以下是将数据重新导入Notes的所有方法列表,我可以在五分钟内思考:
答案 2 :(得分:1)
Lotus Notes数据库有一个完整的Java API。唯一需要注意的是:API是C核心周围的一个瘦包装器,需要你在Notes对象上进行垃圾收集的发布。所以在使用例如一个NotesDocument,你需要调用它的.recycle()方法,否则你会释放内存。