Ecma错误:TypeError:无法调用属性

时间:2013-04-05 05:18:12

标签: ibm-mobilefirst

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

  

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

我已按照以下链接中的说明进行操作。 Using Java in Adapters

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

enter image description here

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

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

}

4 个答案:

答案 0 :(得分:6)

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

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

Compiler level JRE version

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

var fileInstance = new com.worklight.JavaCode.FileIOPlugin()

答案 3 :(得分: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 calling Java class from Worklight adapter