我有一个在 Tomcat 6 下运行的应用程序。该应用程序包含/使用共享库,比如 Shared.jar。在某些时候,它会复制具有唯一名称的 Shared.jar,将其作为 OSGi 包加载到 Felix 实例中,然后启动它。在 Shared.jar MANIFEST.MF 中有
导入包:org.osgi.framework,javax.swing,javax.net,javax.net.ssl
。
使用 Java < 8 一切都很好,但是使用 Java 8 应用程序本身可以正常启动,但是启动 bundle 失败并出现异常
捆绑 [21431] 中 Unresolved 约束:无法解决 21431.0:缺少要求 [21431.0] osgi.wiring.package; (osgi.wiring.package=javax.net)
怎么了?
最佳答案
您至少需要 Karaf 2.4 才能支持 Java 8。
可能您还需要在 pom.xml 中添加导入包声明
<Import-Package>javax.net.*</Import-Package>
..但这看起来不像是主要问题,因为它适用于旧版本的 JRE。
关于java - Java 8 和 Felix bundle 中 Unresolved 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29256872/