ECMA TypeError wywołujący klasę Java z adaptera Worklight
Widziałem wiele pytań na ten temat, ale nie ma jednoznacznych odpowiedzi. Mam problem z wywołaniem klasy Java z mojej implementacji adaptera Worklight. Zastąpiłem mój kod kodem z samouczka IBM Worklight Java Adapter i nie działa on dokładnie w ten sam sposób. Ponadto znalazłem odpowiedź na stronie IBM, mówiąc, że kompilator Java 1.7 może spowodować ten problem i zamiast tego użyć Java 1.6. Sprawdziłem, że moim kompilatorem w Eclipse jest Java 1.6.
Moje klasy Java zaczynają się od com (np. Com.worklight.customcode). Próbowałem zarówno wywoływać publiczne metody statyczne (używając właściwej składni), jak i tworzyć instancję obiektu i wywoływać metodę. Jak wspomniano powyżej, sprawdziłem również, czy używam kompilatora Java 1.6.
Oto kilka przykładów kodu:
Plik implementacji adaptera:
function addTwoIntegers(a,b){
return {
result: com.worklight.customcode.Calculator1.addTwoIntegers(a,b)
};
}
Plik Java (nieedytowana próbka IBM Worklight): pakiet 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;
}
}
Błąd w konsoli:
TypeError: Nie można wywołać właściwości addTwoIntegers w obiekcie [JavaPackage com.worklight.customcode.Calculator1]. To nie jest funkcja, to „obiekt”. (% 2FUsers% 2Fhome% 2Fdev% 2Fapp% 2Fappprj% 2Fadapters% 2Fadapter / adapter-impl.js # 26) FWLSE0101E: Przyczyna: null
Niektóre z powiązanych pytań to:
Błąd Ecma: Błąd typu: Nie można wywołać właściwościChcę wywołać klasę java z adaptera Worklighthttps://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014867695