2017-09-05 128 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