我的Lotus网络包含多个Lotus Domino服务器(每个组织单元都有自己的服务器)。我正在尝试连接到Server_A,然后使用names.nsf
从Server_B获取getDatabase()
:
Session session = NotesFactory.createSession("Server_A_IP:63148", superuser, pass);
Database names = session.getDatabase("CN=Server_B/O=Organization", "names.nsf");
我得到错误:
Exception in thread "main" NotesException: Database CN=Server_B/O=Organization!!names.nsf has not been opened yet
at lotus.domino.NotesExceptionHelper.read(Unknown Source)
at lotus.domino.NotesExceptionHolder._read(Unknown Source)
at lotus.priv.CORBA.iiop.RepImpl.invoke(Unknown Source)
at lotus.priv.CORBA.portable.ObjectImpl._invoke(Unknown Source)
at lotus.domino.corba._IDatabaseStub.searchU(Unknown Source)
at lotus.domino.cso.Database.search(Unknown Source)
at lotus.domino.cso.Database.search(Unknown Source)
使用names.nsf
打开session.getDatabase(null, "names.nsf");
工作正常。
答案 0 :(得分:0)
NotesFactory.createSession(“Server_A_IP:63148”,超级用户,传递);
- > NotesFactory.createSession(“Server_A_IP”,超级用户,传递);
您不需要Port#
您还应该测试您的会话不是空对象... if(session!= null){
}
答案 1 :(得分:0)
我找到了答案here:
连接失败的原因是因为未列出Server1 / ACME 作为Domino中的Server2 / ACME服务器文档中的信任服务器 目录。
解决方案:
要解决此问题很简单。困难的部分是找到了 问题。如果您可以访问Server2 / ACME上的Domino目录, 执行以下操作:
- 在Server2 / ACME上打开Domino目录(服务器通讯簿)。
- 在“配置”下,单击“服务器”,然后单击“所有服务器文档”。
- 双击您希望代码连接到的服务器文档。 (本例中为Server2 / ACME)
- 在“安全”选项卡的左下角部分,有一个名为“受信任的服务器”的字段。
- 在我的方案中,此字段为空。在这个例子之后,我会在这个字段中添加“Server1 / ACME”。
编辑:我刚刚看到解决方案也在评论中。无论如何,我将在这里留下这些步骤,以防它对某人有用。