Java経由でJavaScriptの関数を呼び出そうとしています。スクリプトを文字列として直接読み取る場合、これは問題なく機能しますが、CompiledScripts を使用しています。
コンパイルされたスクリプトでこれを行うと、バインドも追加すると、メソッドが見つかりません。バインディングがなくても機能しますが、バインディングが必要なため、もちろん関数は失敗します。
何か案は?
CompiledScript script = ... get script....
Bindings bindings = script.getEngine().createBindings();
Logger scriptLogger = LogManager.getLogger("TEST_SCRIPT");
bindings.put("log", scriptLogger);
//script.eval(bindings); -- this way fails
script.eval(); // -- this way works
Invocable invocable = (Invocable) script.getEngine();
invocable.invokeFunction(methodName);
ティア