我正在使用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的建议,我尝试在新数据库上生成相同的库和文件,结果证明它有效。好吧,现在问题是同样的事情是我的生产数据库没有工作,我无法重现新数据库上的错误。在新数据库上产生此错误和/或从旧数据库中删除此错误的任何建议都会很棒。谢谢..!
答案 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 但是,您应该在编译时收到警告或错误。