编程语言
首页 > 编程语言> > javascript – 无法在Karaf OSGi中加载ScriptEngineManager和ScriptEngine(未找到Nashorn)

javascript – 无法在Karaf OSGi中加载ScriptEngineManager和ScriptEngine(未找到Nashorn)

作者:互联网

我正在尝试使用ScriptEngineManager和ScriptEngine来使用Java执行一些JavaScript代码.我使用Java 8我在Karaf OSGi下执行此代码.

我使用的示例在示例Java类中工作得很好,但是将它打包在一个包中给了我这个错误ScriptEngineManager providers.next():javax.script.ScriptEngineFactory:Provider jdk.nashorn.api.scripting.NashornScriptEngineFactory not found

当我查看bundle的头文件时,我看到bundle导入了javax.script,这是被调用类的包,但似乎找不到(nashorn)提供者.

谢谢

最佳答案:

转到文件etc / config.properties(位于Karaf安装中),找到配置属性org.osgi.framework.bootdelegation并添加jdk.nashorn.*.完整配置将如下所示:

org.osgi.framework.bootdelegation=org.apache.karaf.jaas.boot,org.apache.karaf.jaas.boot.principal,sun.*,com.sun.*,javax.transaction,javax.transaction.*,javax.xml.crypto,javax.xml.crypto.*,org.apache.xerces.jaxp.datatype,org.apache.xerces.stax,org.apache.xerces.parsers,org.apache.xerces.jaxp,org.apache.xerces.jaxp.validation,org.apache.xerces.dom,sun.*,jdk.nashorn.*

Bug报告给卡拉夫社区.

编辑:如果您在测试中使用Pax Exam Container 4.x for Karaf,那么不要忘记将org.ops4j.pax.exam.CoreOptions.bootDelegationPackage(“jdk.nashorn.*”)添加到测试容器的配置中.

标签:java,javascript,osgi,scriptengine,apache-karaf
来源: https://codeday.me/bug/20190516/1115434.html