我尝试通过 Java 程序在 Domino 服务器上打开数据库。 获得与 Domino 服务器的 session 。我使用以下代码获取/打开数据库。
session = NotesFactory.createSession(DOMINO_SERVER, DOMINO_USER, DOMINO_PW);
if ( session == null ) {
//do something
}
db = session.getDatabase(DOMINO_SERVER, DOMINO_DATABASE);
view = db.getView("someView");
出现以下错误信息:
NotesException: 数据库 xyz 尚未打开
如果我使用“打开”- 方法
db.open();
错误
NotesException:数据库打开()失败
发生。 用户有权访问数据库。最大互联网名称和密码:READER。
我可以检查 domino 服务器上的任何配置吗? 似乎是一个安全问题,但我没有看到原因。 有什么建议/提示吗?
[更新] 完整的堆栈跟踪 ...
NotesException: Database XYZ 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.getSize(Unknown Source)
at lotus.domino.cso.Database.getSize(Unknown Source)
为了测试,我尝试使用“getSize()”方法获取数据库的大小。
来自其他错误消息的完整堆栈跟踪:
NotesException: Database open failed ()
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.open(Unknown Source)
at lotus.domino.cso.Database.open(Unknown Source)
[更新 2]: 服务器控制台的屏幕截图:
最佳答案
用 Simon 的上述想法解决了问题。
我尝试了另一种方法来打开数据库。 这是我尝试打开数据库的方式。
session = NotesFactory.createSession(DOMINO_SERVER, DOMINO_USER, DOMINO_PW);
if ( session == null ) {
//do something
}
DbDirectory dir = session.getDbDirectory(null);
db = dir.openDatabase(DOMINO_DATABASE);
用户对服务器和数据库的访问权限没有改变。 不确定为什么会这样?是否有错误或服务器配置有问题?
但最重要的是……它现在可以工作了……感谢西蒙和理查德。
关于java - 数据库打不开(通过 DIIOP 的 Java 程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20119229/