工作灯适配器 它不是一个函数,它是“对象”.错误

Worklight adapter It is not a function, it is "object". error

本文关键字:函数 一个 它是 错误 对象 适配器 工作      更新时间:2023-09-26

将 worklight 适配器部署到生产服务器后,当适配器调用来自javascript的java代码我得到一个错误:

rocedure invocation error. Ecma Error: TypeError: Cannot call property updateProposal in object [JavaPackage com.idit.smartphone.managers.ProposalManager]. It is not a function, it is "object". (IDITBackend-impl.js#119) 

我尝试在没有参数的类中调用测试函数,但它仍然不起作用我的班级看起来像

package com.idit.smartphone.managers;
public class ProposalManager {
    public static String test(){
        return "Successss";
    }
}

电话是:

function finishTask(policyExtNum, answers, closeUnderwriting){
   WL.Logger.info("Service finishTask called.");
   var proposal = getProposalForUpdate(policyExtNum);
   WL.Logger.info("finishTask got proposal");
   var updatedProposal = com.idit.smartphone.managers.ProposalManager.test();
   var result = sendProposalForUpdate(updatedProposal);
   WL.Logger.info("finishTask updated proposal");
   return result;
}
  • 我使用的是已发布的最新版本的工作灯昨天。6.0.0.20130917-1749 部署在 Tomcat 6 上
  • 它适用于工作灯工作室,只有当我将适配器上传到 tomcat 时才会出现问题
  • 在这个论坛上尝试了像我这样的其他问题的所有解决方案

Eclipse 首选项中将 Java 编译器级别设置为 Java 1.6 并重建。

搜索已经给你几个问题/答案了:我想从Worklight适配器调用Java类;ECMA 类型错误从 Worklight 适配器调用 Java 类;Ecma 错误: 类型错误: 无法调用属性

我们多次遇到这个问题,它总是与损坏的Eclipse .project文件有关。发生的情况是,您拥有的Java类没有被构建,也没有被添加到您的worklight.war文件中。部署应用程序时,服务器上缺少已编译的类,ECMA 错误以一种非常隐晦的方式告诉您。

我们发现的一个解决方案是通过右键单击打开 WL 项目的属性,转到 Java 构建路径,然后使用那里的按钮上下移动一些条目。关闭属性对话框后,日食应重写 .project 文件,并且构建应该可以工作。

我们有时做的另一件事是使用 eclipse New-Class 向导向项目的项目/服务器/java 部分添加一个新类,清理并重建项目,然后再次删除该类。甚至可以在它使用的启动字符串末尾使用选项 -clean 启动 eclipse。