所以这是我试图运行的非常简化的 Lotus Domino Java 代理代码......
import lotus.domino.*;
enum SingletonTest {
INSTANCE;
public void helloWorld() {
System.out.println("Hello World");
}
}
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
System.out.println("Started");
SingletonTest.INSTANCE.helloWorld();
System.out.println("Done");
} catch(Exception e) {
e.printStackTrace();
}
}
}
但是当我尝试运行它时,这就是 Java 控制台上出现的内容......
Started
Exception in thread "AgentThread: JavaAgent" java.lang.VerifyError: JVMCFRE028 ldc* bytecode must reference a constant; class=, method=valueOf(Ljava/lang/String;)LSingletonTest;, pc=0
at java.lang.ClassLoader.defineClassImpl(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:275)
at java.lang.ClassLoader.defineClass(ClassLoader.java:212)
at lotus.domino.AgentLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(ClassLoader.java:626)
at JavaAgent.NotesMain(JavaAgent.java:17)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)
我正在为我的代理使用 Java 1.6。我正在使用 v8.5.3 FP3,在我的 notes.ini 中我有..
JavaCompilerTarget=CurrentJavaVersion
那么我做错了什么?
使用包含代码的枚举的 IBM Java 版本类加载器是否存在问题?
这是我试图遵循的单例编码模式......
https://stackoverflow.com/a/71399/2530065
编辑:我可能应该添加我作为带有“触发器:事件:操作菜单选择”和“目标:无”的 Notes 客户端代理运行它。
编辑2:所以我已经使用相同的 IBM JRE/JVM 在独立的 Java 程序中测试了这个确切的代码,并且代码可以完美运行,没有任何问题。我似乎无法让它在 Notes 客户端中作为 Java 代理工作。