この問題に関する多くの質問を見てきましたが、決定的な答えはありません。Worklight アダプターの実装から Java クラスを呼び出すのに問題があります。コードを IBM Worklight Java Adapter チュートリアルのコードに置き換えましたが、まったく同じように失敗します。さらに、IBM のサイトで、Java 1.7 コンパイラがこの問題を引き起こしている可能性があり、代わりに Java 1.6 を使用するという回答を見つけました。Eclipse のコンパイラが Java 1.6 であることを確認しました。
私の Java クラスはすべて com で始まります (例: com.worklight.customcode)。public static メソッドの呼び出し (適切な構文を使用) と、オブジェクトのインスタンス化とメソッドの呼び出しの両方を試みました。前述のとおり、私は Java 1.6 コンパイラを使用していることも確認しました。
いくつかのコード サンプルを次に示します。
アダプター実装ファイル:
function addTwoIntegers(a,b){
return {
result: com.worklight.customcode.Calculator1.addTwoIntegers(a,b)
};
}
Java ファイル (未編集の IBM Worklight サンプル): package 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%2Fadapters%2Fadapter/adapter-impl.js#26) FWLSE0101E: 原因: null
関連する質問のいくつかは次のとおりです。