栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

用Rhino解析Java中的JavaScript:暂停/恢复脚本

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用Rhino解析Java中的JavaScript:暂停/恢复脚本

好吧,这花了我很多时间来研究文档,教程和示例,并在这里和Rhino Google
Group上发布
,但我设法编写了一个可行的解决方案。由于似乎没有完整的示例,因此我将在此发布我的发现,以供将来偶然发现此问题的任何人使用。

实际上,我的发现可能太长了,无法在此处发布,因此我决定在我的博客上写一个教程:

http://www.joshforde.com/blog/?p=7

希望能对某人有所帮助。据我所知,这是唯一完整的Rhino教程,显示了如何执行以下所有操作:初始化Rhino,从Javascript(*
.js)文件加载脚本,自动绑定特定Java类中的所有函数(例如scriptFunctions)作为Javascript中的全局函数,最后调用Javascript函数并处理该调用的延续。

基本上 ,问题是我需要先下载Mozilla
Rhino源代码(因为JDK附带的版本已过时并且不支持延续),重写我的所有代码以使用官方Rhino软件包的语法(这非常与JDK的scriptingEngine语法不同),编写一个抛出ContinuationPending异常并将其绑定到Javascript的Java函数,以便Javascript可以对其进行调用(因为直接从Javascript抛出ContinuationPending会导致抛出JavascriptException,而不是抛出ContinuationPending,甚至尝试在该JavascriptException上调用getCause()结果为null),然后在调用我的Javascript函数(在我的原始示例中为“
myJSFunction”)的Java代码中,使用try / catch块来检查ContinuationPending(这是一个例外)
,然后再使用该ContinuationPending继续执行脚本。

ew 这很艰难,但是现在都值得。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508645.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号