Я работаю с XPages довольно давно и всегда игнорировал эту ошибку, но хотел бы понять причину (и/или решение, если возможно).
Итак, мой агент XPage при вызове из моей сети работает отлично. Однако добавление библиотеки сценариев JAVA к агенту приведет к ошибке, упомянутой в заголовке моего вопроса. Я видел эту ошибку много раз, и очевидной причиной, по которой я знаю, является то, что документ является нулевым, но в этом случае я уверен, что документ не является нулевым (поскольку он работает без дополнительного скрипта). Пожалуйста, найдите ниже код для каждого из них.
// 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. Я разрешил ограниченные операции с правами администратора для агента, а также выбрал опцию «Запуск от имени веб-пользователя».
Редактировать 1: Основываясь на предложении Кнута Херрманна, я попытался создать те же библиотеки и файлы в новой базе данных и оказалось, что это работает. Что ж, теперь проблема в том, что моя рабочая база данных не работает, и я не могу воспроизвести ошибку в новой базе данных. Любые предложения по созданию этой ошибки в новой базе данных и/или удалению этой ошибки из старой базы данных были бы замечательными. Спасибо..!
Code / Java
. Вы можете вызвать класс Java из SSJS следующим образом:var extract_group = new com.company.ExtractGroup(); extract_group.setSession(session); ...
Текущий документ, который вы можете передать в качестве аргумента. 27.05.2014