【问题标题】:Unresolved package import in OSGiOSGi 中未解决的包导入
【发布时间】:2016-04-01 18:01:01
【问题描述】:

在我的 Bnd (OSGi) 项目中,每当我尝试运行捆绑包(在本例中称为 UI 时,我都会收到以下错误,即使我有依赖 jar (org.apache.commons.io) 正确安装。

org.osgi.framework.BundleException: Unresolved constraint in bundle ui [12]: Unable to resolve 12.2: missing requirement [12.2] osgi.wiring.package; (&(osgi.wiring.package=org.apache.commons.io)(version>=2.0.0)(!(version>=3.0.0)))

我曾尝试使用其他 org.apache.commons.io 版本,但没有成功。

UI Bnd.bnd 文件

Bundle-Version: 0.0.0.${tstamp}
-buildpath: \
    ../cnf/plugins/org.apache.felix.dependencymanager.annotation-3.2.0.jar;version=file,\
    org.apache.felix.dependencymanager,\
    osgi.core,\
    launcher;version=latest,\
    org.apache.commons.io
Private-Package: \
    ui.impl,\
    resources.css,\
    resources.images
Export-Package: ui
Import-Package: *

我该如何解决这个问题?

提前谢谢大家。

【问题讨论】:

  • 您是否安装了导出包的包,以便在运行包时解析?
  • 感谢@BJ Hargrave 的回复我已尝试将-runrequires: osgi.identity;filter:='(osgi.identity=org.apache.commons.io)' 添加到Bnd.bnd 文件中,但这并不能解决问题。我仍然得到同样的错误
  • 这不能回答 BJ 的问题。 org.apache.commons.io 包是否处于已解决状态?
  • @Neil Bartlett 它处于已安装状态
  • 所以那不是。可能缺少一个依赖项,这会阻止 commons.io 包解析。当您尝试启动该捆绑包时会发生什么?

标签: java osgi bnd


【解决方案1】:

我从 Eclipse Marketplace 下载了 Amdatu,并从 Amdatu 存储库套件中调用了依赖项,特别是从 Amdatu Dependencies 组。由于某种原因,这种依赖起作用了。

不过,我敢打赌,肯定会有更好、更合适的解决方案,不管怎样,它都可以让你依赖于工作。我认为我并没有真正解决这里的问题。只是避开它,恐怕我很快就会再次遇到它。不过,这暂时有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-12
    • 2018-09-29
    • 1970-01-01
    • 2012-10-11
    • 2021-03-04
    • 2015-04-28
    • 2017-04-07
    • 1970-01-01
    相关资源
    最近更新 更多