3

我正在尝试使用 Java 程序在本地控制我的 Lotus Notes 以自动为我发送电子邮件。我在尝试获取数据库对象时遇到了以下问题。

try {
    NotesThread.sinitThread();
    Session s = NotesFactory.createSession();
    Database db = s.getDatabase("", "mail/xxxx.nsf")
} finally {
    NotesThread.stermThread();
}

我得到以下异常:

NotesException: Database open failed (%1)
   at lotus.domino.local.Database.Nopen(Native Method)
   at lotus.domino.local.Database.open(Unknown Source)

我已将我的 nsf 文件和 Notes.jar 复制到我的类路径中,有人知道这是什么问题吗?

4

2 回答 2

4

有几件事要检查。

第一个变化:

Session s = NotesFactory.createSession();

到:

Session s = NotesFactory.createSession((String) null, (String) null, password);

如果仍然无法正常工作,请更改:

Database db = s.getDatabase("", "mail/xxxx.nsf")

到:

Database db = s.getDatabase((String) null, "mail/xxxx.nsf")

我还建议养成回收 Domino 对象的习惯。

于 2013-03-16T20:24:44.253 回答
0

您不需要关闭 Lotus Notes。您正在使用的类不驱动 Notes UI。它们与“后端”存储对象一起工作。他们正在使用 Note C API 来解决任何锁定问题。

运行 NotesFactory.createSession 时是否提示您输入用户名和密码?

您提到您将 NSF 文件复制到您的类路径中。为什么??Lotus Notes 类通常应该在 Notes 数据根目录中查找 NSF 文件,该目录由您的 Notes 客户端安装创建。因此,您的 NSF 文件应该位于 Program Files (x86)\IBM\Lotus\Notes\Data\Mail\xxxx.NSF 之类的文件中。

于 2013-03-16T04:54:27.187 回答