5

我在 worklight 项目的适配器中编写了一些 java 代码。当我尝试调用 java 方法时,我收到一条错误消息

“responseID”:“6”,“errors”:{Ecma 错误:TypeError:无法调用对象 JavaPackage java.classes.FileIOPlugin 中的属性 downloadFile]。它不是一个函数,它是\"object\"。}

我已按照以下链接中准确说明的程序进行操作。 在适配器中使用 Java

这是我的项目结构。这个结构有什么问题还是我应该在其中添加更多内容?

在此处输入图像描述

这就是我试图在 adapter-impl.js 中调用 java 非静态方法的方式

function downloadFile() {
    var fileInstance = new com.worklight.JavaCode.FileIOPlugin();
    return
    {   result: fileInstance.downloadFile();    };

}

4

4 回答 4

6

我们已经确定了另一种可能的解决方案。

  • 将 Java 编译器级别更改为 1.6,并将默认 JRE 更改为 1.6:

编译器级别 JRE版本

于 2013-06-19T06:51:41.630 回答
0

确保您的包以 com 开头,例如将其重命名为“com.classes”。

于 2013-04-05T07:29:04.073 回答
0

实例化对象时尝试添加括号:

var fileInstance = new com.worklight.JavaCode.FileIOPlugin()
于 2013-04-05T12:15:37.173 回答
0

检查您的 .project 文件并确保其中包含正确的 buildCommand 标签。

<buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
    <buildCommand>
        <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
        <arguments>
        </arguments>
    </buildCommand>
    <buildCommand>
        <name>org.eclipse.wst.common.project.facet.core.builder</name>
        <arguments>
        </arguments>
    </buildCommand>
    <buildCommand>
        <name>com.worklight.studio.plugin.WorklightProjectBuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
    <buildCommand>
        <name>org.eclipse.wst.validation.validationbuilder</name>
        <arguments>
        </arguments>
    </buildCommand>

阅读更多内容:ECMA TypeError 从 Worklight 适配器调用 Java 类

于 2013-05-26T17:35:10.073 回答