如何在 Apache Karaf(Felix 框架)中获取依赖链

Posted

技术标签:

【中文标题】如何在 Apache Karaf(Felix 框架)中获取依赖链【英文标题】:How to get Dependency chain in Apache Karaf (Felix framework) 【发布时间】:2015-04-28 21:50:54 【问题描述】:

我在 Apache Karaf 中安装功能时遇到如下使用约束违规(karaf 框架是 felix,版本是 4.2.1)

无法解决。原因:包使用冲突:Import-Package: org.apache.http.entity;版本="0.0.0"

谷歌搜索后,才知道“依赖链”可以帮助解决问题。但我不知道在日志或 osgi 控制台中打印此依赖链的步骤

以下 URL 中给出了示例依赖链: Dependency chain conflicts for Hibernate and Apache Felix

提前致谢

【问题讨论】:

【参考方案1】:

如果您使用 felix 框架,则应在启动包时将其打印在控制台和/或日志文件中。 使用 Karaf,您还可以查看 bundle:tree-show [bundle-id]。这将显示您的捆绑包所依赖的所有捆绑包。

【讨论】:

嗨 Achim,感谢您的回复...使用的 Karaf 版本是 3.0.1,它与 felix 框架 4.2.1 捆绑在一起,并使用 etc/config.properties 启用。我仍然看不到控制台/日志文件上打印的链。不确定这个版本的 felix 框架是否支持依赖链特性。有没有办法将此 felix 升级到最新的 4.6.0 ? bundle:tree-show 和依赖链给出了相同的信息? 实际上应该不需要升级到较新的版本,因为在 Karaf 3.x 中使用的版本已经是最新的了。另一件事,你在这里安装什么样的包?看起来您正在尝试使用 felix http-service。如果您只安装 http 或 war 功能,您将安装 karaf 支持的 Pax Web 项目。

以上是关于如何在 Apache Karaf(Felix 框架)中获取依赖链的主要内容,如果未能解决你的问题,请参考以下文章

OSGi:Apache Felix 和 Apache Karaf 有啥区别?

OSGi:无法在 Apache Karaf 中找到 UserAdmin

OSGi 纲要 (R6) 注释 + Felix SCR 2.0.0 + Karaf 3.0.6

如何使用 Apache Karaf/OSGi 构建桌面应用程序?

osgi+camel+karaf运行环境搭建

Apache Felix 和 Glassfish V2