gpt4 book ai didi

从 SSJS 而不是从 JAVA 调用时,JAVA bean 方法失败

转载 作者:行者123 更新时间:2023-11-29 07:47:05 25 4
gpt4 key购买 nike

我有一个被定义为托管 bean 的 JAVA 类。下面的代码是它的精简版本:

package ca.wfsystems.core;

import lotus.domino.*;

public class Utils {

public static void recycleObjects(Object... args) {
for (Object o : args) {
if (o != null) {
if (o instanceof Base) {
try {
((Base) o).recycle();
} catch (Throwable t) {
// who cares?
}
}
}
}
} //end recycleObjects

public static void sysOut(Object msg){
System.out.println(msg.toString());
} //end sysOut
}// End Class

从 JAVA 代码调用时,对 recycleObjects(someObject) 的调用工作正常,但是当我在 XPage 上的一个名为 TestError 的按钮中从 SSJS 调用它时,我收到消息“State data not available for/TestError because no control tree was在缓存中找到。”按钮中的 SSJS 代码是:

WFSUtils().sysOut("In Button");
var vw:NotesView = WFSAppProperties().get(sessionScope.get("ssApplication")).getAppDB().getView("vwWFSForms");
WFSUtils().sysOut("Testing Bean" + vw.getName());
WFSUtils().recycleObjects(vw);

其中 WFSUtils 是托管 bean 的名称。

客户端的错误是:执行 JavaScript Action 表达式时出错脚本解释器错误,行 = 6,列 = 12:找不到 java 类“ca.wfsystems.core.Utils”上的 Java 方法“recycleObjects(lotus.domino.local.View)”JavaScript代码

我搜索了错误“State data not available for”,但在使用扩展库时发现了一个关于它的引用,但此代码不使用它。

最佳答案

您正在使用 varargs在你的方法中。

不可能在 SSJS 中使用可变参数。相反,您可以调用与以下相同的方法:

WFSUtils().recycleObjects([vw]);

它将以这种方式工作。

关于从 SSJS 而不是从 JAVA 调用时,JAVA bean 方法失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24786318/

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