ECMA TypeError вызывает класс Java из адаптера Worklight
Я видел много вопросов по этому вопросу, но нет окончательных ответов. У меня проблемы с вызовом Java-класса из моей реализации адаптера Worklight. Я заменил свой код на код из учебника по IBM Worklight Java Adapter, и он не сработал точно так же. Кроме того, я нашел ответ на IBM 's сайт говорит, что компилятор 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: Невозможно вызвать свойство addTwoIntegers в объекте [JavaPackage com.worklight.customcode.Calculator1]. Это не функция, это "объект», (% 2FUsers% 2Fhome% 2Fdev% 2Fapp% 2Fappprj% 2Fadapters% 2Fadapter / adapter-impl.js # 26) FWLSE0101E: Причина: нуль
Некоторые из связанных вопросов:
Ecma Ошибка: TypeError: Невозможно вызвать свойствоя хочу вызвать класс Java из адаптера рабочего освещенияhttps://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014867695