我已经看到了很多关于这个问题的问题,但没有确凿的答案。我无法从我的 Worklight 适配器实现中调用 Java 类。我用 IBM Worklight Java Adapter 教程中的代码替换了我的代码,它以完全相同的方式失败。此外,我在 IBM 的网站上发现了一个响应,称 Java 1.7 编译器可能会导致此问题,因此请改用 Java 1.6。我验证了我在 Eclipse 中的编译器是 Java 1.6。
我的Java 类都以com 开头(例如com.worklight.customcode)。我尝试过调用公共静态方法(使用正确的语法)以及实例化对象和调用方法。如上所述,我还验证了我使用的是 Java 1.6 编译器。
以下是一些代码示例:
适配器实现文件:
function addTwoIntegers(a,b){
return {
result: com.worklight.customcode.Calculator1.addTwoIntegers(a,b)
};
}
Java 文件(未经编辑的 IBM Worklight 样本):包 com.worklight.customcode;
import java.util.logging.Logger;
public class Calculator1 {
private final static Logger logger = Logger.getLogger(Calculator1.class.getName());
public static int addTwoIntegers(int first, int second){
logger.info("addTwoIntegers invoked");
return first + second;
}
public int subtractTwoIntegers(int first, int second){
logger.info("subtractTwoIntegers invoked");
return first - second;
}
}
控制台中的错误:
TypeError:无法调用对象 [JavaPackage com.worklight.customcode.Calculator1] 中的属性 addTwoIntegers。它不是一个函数,它是“对象”。(%2FUsers%2Fhome%2Fdev%2Fapp%2Fappprj%2Fadapter%2Fadapter/adapter-impl.js#26) FWLSE0101E:原因:null
一些相关的问题是: