【发布时间】:2015-12-20 23:07:11
【问题描述】:
我编写了一个 OSGi 包,它依赖于以下 spring 框架包和其他一些类似的 JAR。
org.springframework.core-3.2.3.RELEASE.jar
大多数时候,spring 框架核心包启动时没有任何问题。但有时,捆绑包无法解决依赖关系。在 felix 控制台中单击开始按钮会引发以下错误:
*ERROR* [FelixDispatchQueue] org.springframework.core FrameworkEvent ERROR (org.osgi.framework.BundleException: Unresolved constraint in bundle org.springframework.core [494]: Unable to resolve 494.0: missing requirement [494.0] osgi.wiring.package; (&(osgi.wiring.package=javax.xml.stream.events)(version>=0.0.0)))
org.osgi.framework.BundleException: Unresolved constraint in bundle org.springframework.core [494]: Unable to resolve 494.0: missing requirement [494.0] osgi.wiring.package; (&(osgi.wiring.package=javax.xml.stream.events)(version>=0.0.0))
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4095)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2114)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1368)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.lang.Thread.run(Unknown Source)
此外,其他一些 spring 框架 JAR 也抛出相同的错误并且无法解析/启动。
*ERROR* [FelixDispatchQueue] org.springframework.beans FrameworkEvent ERROR (org.osgi.framework.BundleException: Unresolved constraint in bundle org.springframework.beans [495]: Unable to resolve 495.0: missing requirement [495.0] osgi.wiring.package; (&(osgi.wiring.package=org.apache.commons.logging)(version>=1.1.1)(!(version>=2.0.0))))
org.osgi.framework.BundleException: Unresolved constraint in bundle org.springframework.beans [495]: Unable to resolve 495.0: missing requirement [495.0] osgi.wiring.package; (&(osgi.wiring.package=org.apache.commons.logging)(version>=1.1.1)(!(version>=2.0.0)))
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4095)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2114)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1368)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.lang.Thread.run(Unknown Source)
据我了解,javax.* 包是由系统捆绑包提供的。谁能帮我解决这个问题?
编辑:
当我终止 java 进程时会发生这种情况。所有具有以下导入的捆绑包也会发生这种情况:
javax.jcr
javax.swing
javax.xml.stream.events
org.apache.commons.logging
javax.servlet
javax.sql
javax.script
javax.net
当我终止 java 进程并重新启动 AEM 时,我遇到了这个问题。当我卸载捆绑包并重新启动我的 AEM 并重新安装捆绑包时,它工作得很好。
【问题讨论】:
标签: osgi apache-felix osgi-bundle