以下代码是我在XPage上的操作按钮中的一些测试代码。我需要在代码WFSUtils.sysOut中使用FullAccess获取当前数据库的句柄,只是将打印的消息格式化为服务器控制台。 catch中的错误消息会定期返回 2015-01-09 12:49:11 PM HTTP JVM:WFS ~~~更新演示错误&session 39.SignerWithFullAccess'找不到
我是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");
}
}
答案 0 :(得分:1)
出于这样或那样的原因,所有XPage元素在运行时都必须使用相同的ID进行签名。如果不是,sessionAsSigner
和sessionAsSignerWithFullAccess
会如您所描述的那样变得不稳定 - 这可能是原因。