【问题标题】:Karaf 4 bootfeature is not workingKaraf 4 引导功能不起作用
【发布时间】:2018-08-06 08:46:06
【问题描述】:

我们从 Karaf-3 升级到 Karaf-4.0.10 版本以迁移到 Opendaylight 的 Nitrogen 版本。在尝试将标准和应用程序功能(custom-odl)作为引导功能启动时,我们遇到了以下异常。但是,我们可以通过 karaf 控制台手动安装相同的 custom-odl(不是 bootfeature)功能。在 Karaf-3 中,我们能够手动启动以及启动功能。

2018-02-26 14:50:58,266 | ERROR | 69e-e623d6584878  | 6 - org.apache.karaf.features.core - 4.0.10 | BootFeaturesInstaller | Error installing boot features
org.osgi.framework.BundleException: Unable to acquire the state change lock for the module: osgi.identity; osgi.identity="org.apache.karaf.features.core"; type="osgi.bundle"; version:Version="4.0.10" [id=6] STOPPED [STARTED]

org.apache.karaf.features.cfg(配置文件输入)

featuresBoot= (wrap), (standard), custom-odl

custom-odl 有 100 多个按不同功能分组的捆绑包。

【问题讨论】:

    标签: osgi apache-karaf karaf opendaylight


    【解决方案1】:

    上游 OpenDaylight 中的自动化测试作业可以使用 featuresBoot。一 我的例子是这样的:

    featuresBoot = odl-infrautils-ready,odl-netvirt-openstack, \
         standard, \
         wrap
    

    也许可以在没有自定义功能的情况下尝试您的自定义发行版 确定有效。如果可行,那么问题可能出在某个地方 您的自定义功能。

    【讨论】:

    • 感谢您的回复。我们是否需要遵循与您提到的相同的顺序。
    • 谢谢,我相信问题出在我的自定义 odl 功能上,我能够毫无问题地安装 odl-infrautils*。您能否告诉我将功能安装为 bootFeature 和使用 feature:install 命令手动安装功能的区别。我可以手动安装自定义 odl 功能
    • 我不确定安装功能的两种方法之间有什么内部区别(也许检查 karaf 文档?),除了 featuresBoot 意味着它们将在您启动 karaf 时自动安装。显然,另一种方式是手动的,在你启动 karaf 后完成。
    • 不同之处在于 featuresBoot 将安装所有列出的功能 - 当您通过 CLI 手动安装时,它们一次完成一个。
    • 谢谢汤姆。请让我知道我的理解是否正确。我有包含多个功能(B,C)和一些捆绑包的功能 A,所以如果我从 CLI 安装功能 A,它将一个接一个地单独安装每个功能。如果我们将 feature-A 作为 bootfeature,那么它将同时安装所有子功能。
    【解决方案2】:

    该错误表明它正在尝试获取锁以停止捆绑包,即它正在尝试转换到 STOPPED 状态并且之前的 stateTransitionEvents 已启动。发生了一些令人讨厌的事情 - 似乎它可能正在尝试递归地重新启动捆绑包。正如 Jamo 所提到的,它可能与您的自定义 odl 功能有关 - 我建议检查该功能并尝试一次添加一个以找到有问题的部分。

    【讨论】:

      猜你喜欢
      • 2018-05-21
      • 2021-03-09
      • 1970-01-01
      • 2014-09-19
      • 1970-01-01
      • 2020-03-01
      • 2016-01-08
      • 2019-06-09
      • 1970-01-01
      相关资源
      最近更新 更多