JavaAgent“java.lang.NoClassDefFoundError:de.bea.domingo.DNotesFactory

我正在尝试在多米诺设计师中调试follownig 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 

java.lang.NoClassDefFoundError是一个运行时错误 。 这意味着,在编辑和保存Java代理时,Designer中可以使用domingo-1.5.1.jar ,并且可以编译代码。

因此,jar文件在运行时不可用。

有三种方法可以存储Java代理的 jar文件,以便它们在运行时可用:

  1. 在目录… \ Lotus \ Notes \ jvm \ lib \ ext中
  2. 在代理商的档案部分
  3. 在Java Library的Archive部分中

请注意,Java代理会忽略Code / Jars中的jar文件(它们只能由XPage使用)。

1。

jar文件复制到目录… \ Lotus \ Notes \ jvm \ lib \ ext 。 重新启动Notes客户端。 然后,您的Java代理将在Notes客户端上运行。

2。

将带有Import / Archive的jar文件添加到Java代理本身:

在此处输入图像描述

3。

如果您有多个代理使用jar文件,那么您应该使用jar文件创建一个Java库并将库包含在代理中:

在此处输入图像描述


从您的其他问题我可以看到您正在使用Notes Domino版本9.项目domingo已经过时并且不支持所有新function。 请改用OpenNTF Domino API org.openntf.domino 。 有关如何将此API与Jav​​a代理一起使用的说明,请参见此处 。 但是,为Java代理存储jar文件的位置总是相同的。

如果要使用domingo类,则需要添加以下内容:

 import de.bea.domingo.*; 

您可能还想考虑使用新的OpenNTF Domino API类而不是domingo类。 OpenNTF项目更新,更雄心勃勃,他们正在积极改进他们的代码。