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

Bil*_*l F 1 java xpages xpages-ssjs

我有一个被称为托管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
Run Code Online (Sandbox Code Playgroud)

当从JAVA代码调用时,对recycleObjects(someObject)的调用工作正常,但是当我在一个名为TestError的XPage上的按钮中从SSJS调用它时,我得到消息"状态数据不可用于/ TestError,因为没有找到控制树缓存".按钮中的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);
Run Code Online (Sandbox Code Playgroud)

其中WFSUtils是托管bean的名称.

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

我搜索了错误"状态数据不可用"但在使用扩展库时找到了一个引用,但此代码不使用它.

Ser*_*mez 5

您正在使用方法中的varargs.

使用SSJS的varargs是不可能的.相反,您可以调用相同的方法:

WFSUtils().recycleObjects([vw]);
Run Code Online (Sandbox Code Playgroud)

它将以这种方式工作.