2015-01-09 147 views
1

下面的代碼是我在XPage的操作按鈕中的一些測試代碼。我需要在代碼中使用FullAccess獲取當前數據庫的句柄WFSUtils.sysOut只是將打印的消息格式化爲服務器控制檯。定期在catch中的錯誤消息返回 2015-01-09 12:49:11 PM HTTP JVM:WFS ~~~錯誤更新演示'sessionAsSignerWithFullAccess'找不到sessionAsSignerWithFullAccess錯誤失敗

我是XPage和數據庫的簽名者由服務器ID簽名。有時它會在上面的消息失敗時順利運行。如果我關閉所有東西然後重新啓動它一般會運行,但然後開始失敗。這是非常隨機的和不可預測的。

debug = true; 
try{ 

    if (debug) WFSUtils.sysOut("Starting YYY New SetupDemo"); 
    var serverName = database.getServer(); 
    var repID = database.getReplicaID(); 
    thisDB = sessionAsSignerWithFullAccess.getDatabase("",""); 
    thisDB.openByReplicaID(serverName,repID); 
    if (debug) WFSUtils.sysOut("SetupDemo Success" + thisDB.getTitle()); 
}catch(e){ 
    WFSUtils.sysOut("Error " + e.toString()) 
}finally{ 
    try{ 
     WFSUtils.recycleObjects([]); 
     if (debug) WFSUtils.sysOut("SetupDemo Recycle Success"); 
    }catch(e){ 
     if (debug) WFSUtils.sysOut("SetupDemo recycle Failed"); 
    } 

} 

回答

1

由於某種原因,所有XPage元素在運行時都應使用相同的ID進行簽名。當他們不是,sessionAsSignersessionAsSignerWithFullAccess得到不穩定的描述 - 這可能是原因。

+0

我聽說過,但確保有一個數據庫的單個簽名者是非常困難的,特別是在開發環境中。無論出於何種原因,我發現當發現錯誤時關閉設計器,然後打開XPage並執行一般可用的代碼,但並非總是如此。非常奇怪,非常耗時。 – 2015-01-09 22:46:23

+0

我用我的ID簽署了數據庫,現在可以使用。因此,開發人員可能應該由該人簽名,然後在生產中將其與服務器簽名。 – 2015-01-10 21:59:44