gpt4 book ai didi

java - 在 Domino Java 代理中使用枚举单例编码模式

转载 作者:行者123 更新时间:2023-11-30 09:20:25 25 4
gpt4 key购买 nike

所以这是我尝试运行的非常简化的 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 客户端代理运行,具有“Trigger:On event:Action Menu selection”和“Target:None”。

编辑2:因此,我已经使用相同的 IBM JRE/JVM 在独立的 Java 程序中测试了这段确切的代码,代码运行完美,没有任何问题。我似乎无法让它在 Notes 客户端中作为 Java 代理工作。

最佳答案

  1. 打开 Designer 首选项并选择编译器设置。

    Preferences

  2. 单击“配置项目特定设置...”

  3. 选择您的项目并单击“确定”。

    select project

  4. 将设置更改为 1.6 和默认合规性设置。

    compliance settings

  5. 点击确定。你应该得到一些提示,选择默认值。然后再次打开并保存您的代理以重新编译它。

使用您的代码我做到了这一点并且运行它没有错误。

关于java - 在 Domino Java 代理中使用枚举单例编码模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17415217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com