ScriptEngine Java

0 respostas
G

Pessoal, alguém já usou mais a fundo a ScriptEngine do Java? Estou lendo um arquivo .js e dando um “compile” pra pegar o CompiledScript. Até aqui tudo bem, o problema é que quando tento invocar uma função, diz que ela não foi declarada. Mas se eu não compilo, apenas uso o “eval”, dai é possível invocar a function.

Cógido:

function teste(a){print(a);};
try {
            jsEngine = new ScriptEngineManager().getEngineByName("JavaScript");

            if (jsEngine instanceof Compilable) {
                Compilable comp = (Compilable) jsEngine;
                compiledScript = comp.compile(new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream("teste.js")));
            }

            Invocable invocable = (Invocable) compiledScript.getEngine();
            invocable.invokeFunction("teste","Testando método");

        } catch (Throwable t) {
            t.printStackTrace();
        }

Se eu executar o cógido java da um erro dizendo:

java.lang.NoSuchMethodException: no such method: teste

Alguém, já passou por esse problema?

Criado 18 de outubro de 2010
Respostas 0
Participantes 1