我正在尝试将weld-osgi-bundle安装到apache felix,我得到了这个异常 -
org.osgi.framework.BundleException: Unresolved constraint in bundle org.jboss.weld.osgi-bundle [15]: Unable to resolve 15.0: missing requirement [15.0] osgi.wiring.package; (osgi.wiring.package=sun.misc)
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4097)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2114)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:977)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:964)
我知道的唯一方法是将它放在Felix配置的Constants.FRAMEWORK_SYSTEMPACKAGES中,因为JDK提供了这个包。像这样:
String SYSTEM_PACKAGES = "sun.misc";
configMap.put(Constants.FRAMEWORK_SYSTEMPACKAGES, SYSTEM_PACKAGES);
但是,如果我按照这种方式,我将不得不导出所有使用过的javax
等包。怎么解决这个问题?我试图找到osgi
捆绑sun.misc但不能。
答案 0 :(得分:1)
将FRAMEWORK_SYSTEMPACKAGES
替换为FRAMEWORK_SYSTEMPACKAGES_EXTRA
。这会附加到系统包导出,而不是覆盖它们。