1

我的 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");工作正常。

4

2 回答 2

0

我在这里找到了答案:

连接失败的原因是 Server1/ACME 未在 Domino 目录中的 Server2/ACME 的服务器文档中列为信任服务器。

和解决方案:

解决这个问题很简单。困难的部分是找到问题。如果您有权访问 Server2/ACME 上的 Domino 目录,请执行以下操作:

  • 在 Server2/ACME 上打开 Domino 目录(服务器通讯簿)。
  • 在“配置”下,单击“服务器”,然后单击“所有服务器文档”。
  • 双击您希望代码连接到的服务器文档。(本例中为 Server2/ACME)
  • 在安全选项卡下的左下部分,有一个名为“受信任的服务器”的字段。
  • 在我的场景中,此字段为空。按照此示例,我将在此字段中添加“Server1/ACME”。

编辑:我刚刚看到解决方案也在评论中。无论如何,我将把这些步骤留在这里,以防万一它对某人有用。

于 2015-04-15T19:25:23.987 回答
0

NotesFactory.createSession("Server_A_IP:63148", superuser, pass);

-> NotesFactory.createSession("Server_A_IP", superuser, pass);

你不需要端口#

您可以查看http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic=%2Fcom.ibm.designer.domino.main.doc%2FH_EXAMPLE_REGISTERNEWUSER_METHOD_JAVA.html

您还应该测试您的会话不是空对象... if (session != null){

}

于 2013-10-17T11:59:54.563 回答