Worklight适配器它不是一个功能,它是“对象”。错误

时间:2013-09-24 10:49:46

标签: java javascript ibm-mobilefirst

将适用于工作灯的适配器部署到生产服务器上后,适配器会调用 来自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;
}
  • 我正在使用已发布的最新版本的工作灯 昨天。部署在tomcat 6上的6.0.0.20130917-1749
  • 它适用于worklight studio,只有当我将适配器上传到tomcat时才会出现问题
  • 我在本论坛中尝试过像我这样的其他问题的所有解决方案

2 个答案:

答案 0 :(得分:3)

搜索会给你几个问题/答案:i want to call a java class from the worklight adapter; ECMA TypeError calling Java class from Worklight adapter; Ecma Error: TypeError: Cannot call property

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

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

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

答案 1 :(得分:2)

在你的eclipse偏好设置中将java编译器级别设置为java 1.6并重建。