Fondamentalement, j'essaie de passer une fonction javaScript à une méthode Java pour agir comme un rappel au script.Comment puis-je passer une fonction javaScript à une méthode Java pour agir comme un rappel (Rhino)
Je peux le faire - en quelque sorte - mais l'objet que je reçois est un sun.org.mozilla.javascript.internal.InterpretedFunction et je ne vois pas comment l'invoquer.
Des idées?
Voici ce que j'ai jusqu'à présent:
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);
}
Est-ce une applet? Sinon, c'est impossible car le code JavaScript est exécuté côté client, tandis que le code Java est exécuté côté serveur. Vos variables d'exécution sont perdues dans ce processus. Vous devrez appeler le Java via une requête 'POST' ou' GET', en passant vos données en tant que paramètre de requête. – FK82
@ FK82 - Rhino est un interpréteur JavaScript écrit en Java (il est inclus dans la JVM Java 6 dans le cadre de l'API de script). – McDowell
@McDowell: L'OP n'était pas spécifique à partir de quel runtime il essayait d'appeler la fonction Rhino/JavaScript. – FK82