Java 包使用冲突:导入包:de.foo.bar;版本=";“0.0.0”;

Java 包使用冲突:导入包:de.foo.bar;版本=";“0.0.0”;,java,osgi,Java,Osgi,我尝试在OSGi环境(FUSE ESB)中安装一个捆绑包,但没有设法解决它。错误消息是: The bundle could not be resolved. Reason: Package uses conflict: Import-Package: de.foo.bar; version="0.0.0" 我的包导入包de.foo.bar。 导出包de.foo.bar的捆绑包使用“uses”指令执行此操作 Export-Package = de.foo.bar;uses:="{other pa

我尝试在OSGi环境(FUSE ESB)中安装一个捆绑包,但没有设法解决它。错误消息是:

The bundle could not be resolved. Reason: Package uses conflict: Import-Package: de.foo.bar; version="0.0.0"
我的包导入包de.foo.bar。 导出包de.foo.bar的捆绑包使用“uses”指令执行此操作

Export-Package = de.foo.bar;uses:="{other packages}";version="2.4.0"
据我所知,我必须确保我的包必须导入de.foo.bar包的“uses”指令中提到的所有其他包(在正确的版本中)

我对此进行了检查,并尝试了几个版本更改(0.0.0和实际版本号),但无法使其工作

那么,错误消息真正的意思是什么(也许我理解错了)?我要检查什么

谢谢你的帮助

克劳斯


系统信息:

  • (基于servicemix)
  • 使用2.1.0生成OSGi清单头

    • 我终于找到了问题所在

      我的bundle是一个Spring动态模块bundle,我在springbean配置中犯了一个错误(在构造函数arg中使用“ref”而不是“value”)。通常情况下,spring配置错误会这样报告-我不知道为什么当前错误会导致误导性消息

      编辑:

      错误的弹簧配置不会导致使用冲突。最后是org.apache.log4j包的导入,该包由不同的bundle(在我的fuseesb容器中)导出,显然与我尝试安装的bundle是不同的


      试图解决我的问题时,我发现这篇文章对理解问题很有帮助。

      如果您只是从
      导出包
      声明中删除
      使用
      版本
      属性,是否有效?就我所记得的,它们是可选的。属性是由maven bundle插件添加的(即使我通过名称而不是通配符指定bundle),我不知道如何避免这种情况。尽管如此,我认为理解这条消息并正确配置内容可能是值得的。