调用方法NotesAgent.runWithDocumentContext(lotus.domino.local.Document)null发生异常

时间:2014-05-23 08:25:04

标签: xpages

我正在使用XPages很长一段时间并且一直忽略了这个错误,但是想了解原因(和/或解决方案,如果可能的话)。

因此,从我的网络调用时,我的XPage代理工作得非常好。但是,向代理添加JAVA脚本库会抛出我的问题标题中提到的错误。我已经多次看到这个错误,我明白的原因是文档为null但在这种情况下我确信文档不是null(因为它运行时没有附加脚本)。请在下面找到每个代码。

// Javascript: default.js
var uId = myList.get(0); // this contains the document unique id
var doc:NotesDocument = database.getDocumentByUNID(uId);
var agentName = "groupRobot" ;
var agent:NotesAgent = database.getAgent(agentName);
if (agent != null)
{
if(doc == null){
// do nothing
}else{
agent.runWithDocumentContext(doc);
}
}
else {
getComponent("warningmessageBox").setValue("Failed to run the agent");
}


// Agent : groupRobot

public class JavaAgent extends AgentBase {
Session session;
public void NotesMain() {
session = getSession();
//       ExtractGroup extract_group = new ExtractGroup();
//        extract_group.setSession(session);
//        boolean populatePersons = extract_group.start(); // calling the attached script library to replace group by persons
if(true){
System.out.println("Script finished sucessfully");
}
} // End of Notes Main
} // End of Class

// JAVA SCRIPT LIBRARY : extract_group

public class ExtractGroup {
Session session;
Vector<String> users= new Vector<String>();
Vector<String> groups= new Vector<String>();

public void setSession(Session session) {
this.session = session;
}
public boolean start() {
return true; // removed original code for being more clear
}
} // End of Class

我无法理解其原因。任何帮助都会非常感激。

谢谢!

P.S。我已允许具有代理管理员权限的受限操作,并且还选择了“以Web用户身份运行”选项

编辑1:基于Knut Herrmann的建议,我尝试在新数据库上生成相同的库和文件,结果证明它有效。好吧,现在问题是同样的事情是我的生产数据库没有工作,我无法重现新数据库上的错误。在新数据库上产生此错误和/或从旧数据库中删除此错误的任何建议都会很棒。谢谢..!


3 个答案:

答案 0 :(得分:1)

在座席安全标签中设置“以网络用户身份运行”。

查看here了解更多信息。

答案 1 :(得分:0)

您的Java源代码级别是多少?您的new Vector()中有参数,默认情况下在Domino Java Library中不可用。检查项目和编辑器级别:

文件 - &gt;偏好 - &gt; Java - &gt;编译器 - &gt;编译器合规性级别

(第二次按键点击) - &gt;项目属性 - &gt; Java编译器 - &gt; JDK合规性

这可能导致类初始化在构造函数运行之前失败。

答案 2 :(得分:0)

Java源文件必须与它们包含的类匹配。您的问题表明您导入的文件是extract_group,而您的类是ExtractGroup 但是,您应该在编译时收到警告或错误。