我正在使用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