Fondamentalmente sto provando a passare una funzione javaScript a un metodo Java per fungere da callback per lo script.Come passare una funzione javaScript a un metodo Java per agire come callback (Rhino)
Posso farlo - una specie di - ma l'oggetto che ricevo è una funzione sun.org.mozilla.javascript.internal.Interpreted e non vedo il modo di invocarlo.
Qualche idea?
Ecco quello che ho finora:
var someNumber = 0;
function start() {
// log is just an log4j instance added to the Bindings
log.info("started....");
someNumber = 20;
// Test is a unit test object with this method on it (taking Object as a param).
test.callFromRhino(junk);
}
function junk() {
log.info("called back " + someNumber);
}
È un'applet? In caso contrario è impossibile poiché il codice JavaScript viene eseguito lato client, mentre il codice Java viene eseguito lato server. Le variabili di runtime sono perse in quel processo. Dovrai chiamare Java tramite una richiesta 'POST' o' GET', passando i tuoi dati come parametro di richiesta. – FK82
@ FK82 - Rhino è un interprete JavaScript scritto in Java (è incluso in Java 6 JVM come parte dell'API dello script). – McDowell
@McDowell: L'OP non era specifico da quale runtime stava cercando di chiamare la funzione Rhino/JavaScript. – FK82