尝试导出简单接口时未解决的约束



我正在尝试迈出熟悉OSGI框架的第一步。但是,我什至无法启动仅导出一个包的捆绑包,仅此而已。框架显示的错误对我来说听起来很荒谬,因为我将其读为"为了启动您的捆绑包,我需要解析 openjsip.service.locationservice 包。但是这个包裹来自我的捆绑包!无论如何,我认为我错了,但我无法理解问题所在,有人可以帮助我吗?

ERROR: Bundle openjsip.locationservice [6] Error starting file:////tmp/locationservice-1.0.0-SNAPSHOT.jar (org.osgi.framework.BundleException: Unresolved constraint in bundle openjsip.locationservice [6]: Unable to resolve 6.0: missing requirement [6.0] osgi.wiring.package; (&(osgi.wiring.package=openjsip.service.locationservice)(version>=1.0.0)))
org.osgi.framework.BundleException: Unresolved constraint in bundle openjsip.locationservice [6]: Unable to resolve 6.0: missing requirement [6.0] osgi.wiring.package; (&(osgi.wiring.package=openjsip.service.locationservice)(version>=1.0.0))
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3826)
at org.apache.felix.framework.Felix.startBundle(Felix.java:1868)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1191)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295)
at java.lang.Thread.run(Thread.java:722)

这是我的清单。中频:

Manifest-Version: 1.0
Bnd-LastModified: 1348338100498
Build-Jdk: 1.7.0_05
Built-By: devel
Bundle-ManifestVersion: 2
Bundle-Name: locationservice
Bundle-SymbolicName: openjsip.locationservice
Bundle-Version: 1.0.0.SNAPSHOT
Created-By: Apache Maven Bundle Plugin
Export-Package: openjsip.service.locationservice;uses:="javax.sip.header
 ,javax.sip";version="1.0.0.SNAPSHOT"
Import-Package: javax.sip;version="[1.2,2)",javax.sip.header;version="[1
 .2,2)"
Tool: Bnd-1.50.0

错误消息似乎与清单不匹配。您发布的 MF。您是否有可能在两者之间重建它?

错误消息指出您的捆绑包openjsip.service.locationservice导入包,并且无法解析导入。但是,根据清单,您只能导入javax.sipjavax.sip.header。因此,此错误消息不可能来自发布的捆绑清单。

谢谢大家的帮助,问题确实出在 IDEA 配置上,它在其中创建了清单。MF 本身使用分面配置(我依靠 apache maven 插件将其留空)。由于某种原因,它忽略了这个插件,或者还不能与它配对工作。解决方案是告诉它"使用预定义的清单。来自目标/类/元INF的MF

再次感谢。

最新更新