Использование шаблона одноэлементного кодирования enum в агенте Java Domino
Так что это очень упрощенный код Java-агента Lotus Domino, который я пытаюсь запустить ...
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 для моего агента. Я использую FP3 v8.5.3 и в моем notes.ini у меня есть ..
JavaCompilerTarget = CurrentJavaVersion
Так что я делаю не так?
Есть ли проблема с загрузчиком классов IBM Java версии, использующим перечисление, содержащее код?
Это шаблон кодирования синглтона, которому я пытался следовать ...
https://stackoverflow.com/a/71399/2530065
редактировать: я, вероятно, должен добавить, я запускаю это как агент клиента Notes с "Триггер: по событию: выбор меню действий а также "Цель: None».
edit2: Итак, я протестировал этот точный код в отдельной Java-программе, использующей ту же IBM JRE / JVM, и код работает без проблем. Я просто могуКажется, он работает как агент Java в клиенте Notes.