我在worklight项目的适配器中编写了一些java代码。当我试图调用java方法时,我收到错误说
“responseID”:“6”,“errors”:{Ecma错误:TypeError:无法在对象中调用属性downloadFile JavaPackage java.classes.FileIOPlugin]。它不是一个功能 \ “对象\”。}
我已按照以下链接中的说明进行操作。 Using Java in Adapters
这是我的项目结构。这个结构有什么问题,还是我应该添加更多内容?
这就是我试图在adapter-impl.js中调用java非静态方法
的方法function downloadFile() {
var fileInstance = new com.worklight.JavaCode.FileIOPlugin();
return
{ result: fileInstance.downloadFile(); };
}
答案 0 :(得分:6)
我们已经确定了另一个可能的解决方案。
答案 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