2016-05-31 15 views
5

Java ile bazı JavaScript kodu yürütmek için ScriptEngineManager ve ScriptEngine kullanmaya çalışıyorum. Java 8 kullanıyorum Bu kodu Karaf OSGi altında çalıştırıyorum.ScriptEngineManager ve ScriptEngine Karaf OSGi (Nashorn bulunamadı) yüklenemedi

Bir numunede Java sınıf ince işleri kullanılan örnek, ama bir likte ambalaj bana demetin başlıklarına baktığımızda ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory: Provider jdk.nashorn.api.scripting.NashornScriptEngineFactory not found

, görüyorum bu hatayı verdiği paket ithalatı javax.script, paket denilen sınıfların ama görünür (nashorn) sağlayıcı bulunamadı.

Teşekkür

cevap

6

Git bulmak, konfigürasyon özelliği org.osgi.framework.bootdelegationetc/config.properties (Karaf kurulumunun içinde bulunan) dosya ve jdk.nashorn ekleyin. * Kendisine. Komple yapılandırması aşağıdaki gibi olacaktır:

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 Karaf topluluğuna bildirilmektedir.

Düzenleme: Eğer testlerde Karaf için Pax Sınav Konteyner 4.x kullanıyorsanız o zaman test kabının yapılandırmasına org.ops4j.pax.exam.CoreOptions.bootDelegationPackage("jdk.nashorn.*") eklemeyi unutmayın.

0
Sen aslında söz konusu bu paketleri ihracat bir paket ya da sistemi olduğundan emin olmak gerekir

:

Yani ya karşılık gelen paket yüklemek veya ihracat oynamak için gereken Sistem paketinin, bu durumda jre.properties dosyasını düzenleyin ve söz konusu paketin sistem paketinden verildiğinden emin olun.

İlgili konular