在使用JSR223与Rhino的接口时,我已经开始遇到一些非常恼人的问题:
- 不良异常信息(见我的其他SO问题)
- 无法使用ScriptableObject(将Javascript
foo
变量设置为具有属性的Javascript值,以便我可以将foo.bar
设置为某些内容,foo.baz
设置为其他内容,这将是很好的)。JSR223只是让我设置根全局变量为Java值。) - 无法设置只读变量/属性
如果有必要,我会考虑切换到Rhino作为本地脚本引擎,但随之而来的痛苦是,如果不做一些额外的工作,就无法支持其他语言。
除了JSR223,还有更好的抽象层吗?
我听说过Bean脚本框架,但我不确定它有什么不同/更糟/更好。我也遇到了Scripturian,但我不知道。
不是真正的答案,但从我有限的探索来看,jsr223和bsf相当简单,并没有真正解决更强大的嵌入问题。如果你真的想要更好的集成,你需要使用本地桥。