2014-03-06 67 views
0

我試着用Java創建蓮花筆記客戶端。現在,我列出了所有用戶定義的數據庫。我試圖做的是列出所有蓮花筆記數據庫

// testing purpose 
private void printAllDb() throws NotesException 
{ 
    DbDirectory dir = session.getDbDirectory(host); 
    String server = dir.getName(); 
    if(server.equals("")) 
    { 
     server = "Local"; 
    } 

    System.out.println("database direcory list on server (" + server + ")"); 
    Database db = dir.getFirstDatabase(DbDirectory.DATABASE); 

    do 
    { 
     System.out.println("file name: " + db.getFileName().toUpperCase() + " - " + db.getTitle()); 

    } while((db = dir.getNextDatabase()) != null); 

} 

然而,該計劃將引發異常:

Exception in thread "main" NotesException: Server access denied 
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._IDbDirectoryStub.getFirstDatabase(Unknown Source) 
at lotus.domino.cso.DbDirectory.getFirstDatabase(Unknown Source) 
at nz.co.sylresearch.sylsearch.agents.lotusnotes.LotusNotesAPIHandler.printAllDb(LotusNotesAPIHandler.java:58) 
at nz.co.sylresearch.sylsearch.agents.lotusnotes.LotusNotesAPIHandler.main(LotusNotesAPIHandler.java:44) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 

回答

1

的問題是相當清楚的。您正在爲服務器獲取拒絕訪問錯誤。現在棘手的部分是找出原因。

您應該首先確定用於創建會話對象的用戶名和密碼是否正確。然後確保用戶有權訪問服務器並有權在服務器上運行Java代碼。您必須檢查目錄中的服務器文檔。

+0

感謝您的回覆,您能告訴我應該去哪個服務器文檔嗎?我嘗試使用createSessionWithFullAccess創建會話,但它不起作用,並且拋出一個沒有發現異常的類 – Alvin

+2

他指的是服務器文檔中的'主機'(無論真名是什麼 - 這只是您的變量名稱, t知道這個值),Domino Administrator目錄(即names.nsf數據庫)可以使用Domino Administrator客戶端輕鬆找到。 –

+2

從文檔中,我相信createSessionWithFullAccess需要與Notes標識文件對應的密碼。您正在使用ncso.jar文件,該文件使用IIOP/CORBA與Domino交談,因此它不需要(也不能使用)Notes標識文件。所以我不是100%確定的,但我認爲這意味着你不能在ncso.jar中使用CreateSessionWithFullAccess。 –