2

我想创建一个包含脚本引擎(符合 JSR-223 )的 OSGi(Equinox)包,并通过ScriptEngineManager.getEngineFactories().

然而,Java Scripting API 的服务发现机制(jar 文件服务发现)无法发现已安装包中的脚本引擎。

我已经看到关于该主题的一些答案,建议使用 Apache Felix 或 Apache Sling,因为他们有解决方案。但是我想知道Equinox实现是否有办法解决这个问题?

4

2 回答 2

1

好吧,OSGi 5 将支持它,它被称为Service Loader Mediator。这将有效地将 OSGi 服务与 java.util 服务加载器连接起来。

Apache Aries 有一个名为Spi-Fly的实现,它应该可以工作。我猜它更针对 Felix,但通常 OSGi 实现非常兼容。

不过老实说,我从来没有深入了解这一点,所以我不能从个人经验中说出来。

祝你好运,弗兰克

于 2013-01-16T13:32:07.420 回答
1

我已经根据Is OSGi 从根本上与 JSR-223 脚本语言发现不兼容的答案之一实现了一个解决方案?使用OSGiScriptEngineManager和朋友,效果很好。

那么最大的问题可能是为有问题的脚本语言找到合适的 JSR 223 实现:-)

于 2013-01-16T13:41:43.093 回答