我正在尝试使用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复制到我的类路径中,任何人都知道这有什么问题?
答案 0 :(得分: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对象的习惯。
答案 1 :(得分: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。