我正在使用javax.script将JavaScript代码嵌入到Java方法中。javax.script传递给JavaScript用作回调的Java方法
在我的项目中,JavaScript负责通过websocket发送异步http请求。一旦收到响应,我需要执行回调函数。
我想调用一个用Java编写的方法作为回调。
在此处的文档中:http://docs.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/ 它解释了如何在JavaScript中为接口实现java方法,但不是如何调用Java方法形式的javascript。
感谢
嗨cmbaxter!我不确定。在我的项目中,我将调用一个javascript函数。然后控件将返回到java直到回调被执行。 这实际上提示了另一个问题。 javascript方面的变量的生命周期是什么? 谢谢 – Piero 2013-05-10 01:46:52
如果您询问我提供给脚本(绑定到'cb')的Java变量的生命周期,我相信Object('JsCallback')不会被Java垃圾收集,直到'ScriptEngine'本身('engine')完全解除引用并可用于收集。如果你担心在js开始使用它的时候''cb' var不在js中,我认为你不需要。这里有一个很好的链接,可以更多地了解一些内部工作: http://stackoverflow.com/questions/6936223/what-is-the-lifecycle-and-concurrency-semantics-of-rhino-script-engine – cmbaxter 2013-05-10 10:25:01