我尝试在domino designer
中调试以下java代理 public class JavaAgent extends AgentBase {
public void NotesMain() {
DNotesFactory factory = DNotesFactory.getInstance();
DSession session = factory.getSession();
DDatabase database;
try {
database = session.getDatabase("", "names.nsf");
DView view = database.getView("($Users)");
Iterator entries = view.getAllEntries();
while (entries.hasNext()) {
DViewEntry entry = (DViewEntry) entries.next();
System.out.println(entry.getColumnValues().get(0));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
但我得到以下异常
JavaAgent" java.lang.NoClassDefFoundError: de.bea.domingo.DNotesFactory
答案 0 :(得分:2)
java.lang.NoClassDefFoundError
是运行时错误。这意味着,在编辑和保存Java代理期间,Designer中可以使用domingo-1.5.1.jar
,并且可以编译代码。
因此,jar文件在运行时不可用。
有三种方法可以存储 Java代理的 jar 文件,以便它们在运行时可用:
请注意,Java代理会忽略Code / Jars中的jar文件(它们只能由XPage使用)。
将 jar 文件复制到目录... \ Lotus \ Notes \ jvm \ lib \ ext 。重新启动Notes客户端。然后,您的Java代理将在Notes客户端上运行。
将带有导入/存档的 jar 文件添加到Java代理本身:
如果您有多个代理使用 jar 文件,那么您应该使用jar文件创建一个Java库并将库包含在代理中:
从您的其他问题我可以看到您正在使用Notes Domino版本9.项目domingo已经过时并且不支持所有新功能。请改用OpenNTF Domino API org.openntf.domino 。有关如何将此API与Java代理一起使用的说明,您可以找到here。存储Java代理的jar文件的地方总是相同的。
答案 1 :(得分:1)
如果你想使用domingo类,你需要添加:
import de.bea.domingo.*;
您可能还想考虑使用新的OpenNTF Domino API classes而不是domingo类。 OpenNTF项目更新,更雄心勃勃,他们正在积极改进他们的代码。