2013-11-15 45 views
1

我試圖在SSJS中使用SessionAsSigner.getDatabase來訪問不同服務器上的數據庫。但它總是返回null。例如我使用:sessionAsSigner.getDatabase返回null

var db = sessionAsSigner.getDatabase("canonical name of server","log.nsf", false); 
+1

目標服務器是否將您的XPage運行的服務器列爲Domino目錄中的「受信任的服務器」? –

回答

0

問題是你的代碼是用不同的簽名者簽名的。 嘗試使用您的服務器ID或數據庫辭職。

這可能會解決您的問題。

+2

不知道這個,在這種情況下,getSessionAsSigner返回null,所以上面的代碼將失敗,並帶有NullPointerException。 –

1

當您使用sessionAsSigner你正在連接的服務器能夠驗證你是誰,當你登錄。

當你的服務器(A)上運行的代碼,你需要跟到另一臺服務器( B),那麼第一臺服務器使用A憑證進行認證。它無法像您一樣進行身份驗證。

要允許它正確,您需要設置一個服務器作爲服務器B上的受信任的服務器

您可以在服務器文檔中設置trusted servers運行。

您可以通過編程方式檢查是否使用NotesSession.isTrustedSession()方法進行設置。

0

您正在使用的服務器需要訪問並連接到您要訪問的服務器的文檔。所以首先要做的是:檢查服務器文檔中的「誰可以訪問此服務器」字段中列出了您的服務器。然後檢查可信服務器部分。然後檢查日誌的ACL(您的執行服務器和XPage簽名者需要訪問log.nsf)