Básicamente estoy tratando de pasar una función javaScript a un método Java para actuar como una devolución de llamada al script.¿Cómo puedo pasar una función javaScript a un Método Java para actuar como una devolución de llamada (Rhino)
Puedo hacerlo, más o menos, pero el objeto que recibo es sun.org.mozilla.javascript.internal.InterpretedFunction y no veo una forma de invocarlo.
¿Alguna idea?
Esto es lo que tengo hasta ahora:
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);
}
¿Esto es un applet? Si no, es imposible ya que el código JavaScript se ejecuta en el lado del cliente, mientras que el código Java se ejecuta en el lado del servidor. Sus variables de tiempo de ejecución se pierden en ese proceso. Tendrá que llamar a Java a través de una solicitud 'POST' o' GET', pasando sus datos como un parámetro de solicitud. – FK82
@ FK82 - Rhino es un intérprete de JavaScript escrito en Java (está incluido en Java 6 JVM como parte de la API de scripts). – McDowell
@McDowell: El OP no era específico de qué tiempo de ejecución intentaba llamar a la función Rhino/JavaScript. – FK82