2017-09-05 124 views
0

我试图让我的服务器上的所有数据库。但在getDbDirectory()参数中指定我的服务器名称为NALLN304/40/LLN/IBM给我一个错误。目录不存在(Lotus Notes)

目录NALLN304/40/LLN/IBM!不存在

它总是在最后加两个感叹号。我也尝试在服务器名称和邮件文件的末尾添加.nsf格式。 NALLN304/40/LLN/IBM!!data0\126\1000031540.nsf也给我同样的错误。

剪断下面的代码:

Session session = null; 
Database db = null; 
DbDirectory dir = null; 

try 
{ 
    NotesThread.sinitThread(); 
    session = NotesFactory.createSession(); 
    System.out.println("User = " + session.getUserName()); 
    dir = session.getDbDirectory("NALLN304/40/LLN/IBM"); 

    System.out.println(dir.getName()); 

    db = dir.getFirstDatabase(DbDirectory.DATABASE); 

    do 
    { 
     System.out.println("Title: " +db.getTitle()); 
    } 
    while(dir.getNextDatabase() != null); 

} 
catch(NotesException ex) 
{ 
    ex.printStackTrace(); 
} 

错误总是指出的db = dir.getFirstDatabase(DbDirectory.DATABASE);因为dir.getFirstDatabase(DbDirectory.DATABASE)预期。NSF文件,即使我指定的文件格式。任何我为什么得到这个错误的原因?

+0

此代码是如何运行的?作为代理?一个独立的Java程序?你使用的是Notes.jar还是NCSO.jar?你是否证实你有权访问服务器? (也就是说,如果你尝试session.getDatabase(“NALLN304/40/LLN/IBM”,“Names.nsf”)会发生什么? –

+0

嗨!@RichardSchwartz我在独立的Java程序中使用Notes.jar来运行它。我尝试使用'database.isOpen()'方法验证访问,但它不会对我进行身份验证,但是如果我使用了我的Workspace的服务器和文件地址,它确实可以正常工作。 – Francisunoxx

+0

我对某些事情不清楚:你尝试通过dir.getFirstDatabase()检索的数据库对象上的database.isOpen()?或者你尝试了我的建议,检查会发生什么,如果你执行session.getDatabase(“NALLN304/40/LLN/IBM”,“Names .nsf“,以查看是否有权访问服务器? –

回答

1

你的问题是你的ID没有通过服务器进行验证。你需要采取的输出从这一行:

System.out.println("User = " + session.getUserName()); 

并把它带到你的服务器管理员,问为什么它没有被允许访问该服务器,并要求他们要么通过授予必要的权限,以协助您或通过给你另一个你可以使用的ID。

+0

我收到我的用户名。但服务器和文件不会进行身份验证。我将尝试联系我的管理员以便能够在Lotus Notes中获取我的所有数据库。 – Francisunoxx