当前位置: 首页 > 知识库问答 >
问题:

Karaf : 功能:安装重新启动以前的捆绑包

陈胤
2023-03-14

我正面临来自karaf服务器的令人恼火的行为:标题说明了一切,当我使用feature:install命令时,已安装的捆绑包会重新启动。

* 项目背景 *

>

  • 我处理的大多数捆绑包都是骆驼路线,其他捆绑是常见的工具,由路线共享。

    因此,我有一个2级项目:首先安装的公共部分,以及所有依赖于公共部分的camel路由(取决于Maven的观点)。

    *场景*

    • 启动卡拉夫的新实例
    • 安装常用功能
    • 安装骆驼路线功能:到目前为止没有麻烦
    • 安装第二个驼路由功能:以前安装的功能的捆绑包将重新启动。

    * 取得突破 *

    所有捆绑包都声明了一个通用的配置文件,并带有“update-Strategy=reload”选项。这意味着karaf将通知每个捆绑包对该文件的任何修改,并且捆绑包将重新启动以将其考虑在内。

    事实上,当我安装一个依赖于这个文件的新包时,它会被读取以初始化包的属性,karaf认为这是一个文件修改。因此,安装一个新的包需要重启所有其他的包。

    正如您所料,我通过删除更新策略选项来解决这个问题,现在我的大部分功能都是干净的。

    *剩菜*

    但是,其中一些仍然存在错误:安装任何这些麻烦的功能将使所有其他已安装的功能重新启动。这是一个单向问题,安装一个干净的捆绑包不会让麻烦的捆绑包重新启动。

    我检查过了,但没有其他配置文件可以对此负责。

    感谢任何帮助或建议,我还可以提供任何有助于您理解的文件的匿名示例,如osgi-context或特性的pom.xml

    最后一件事:我的功能重新组合了大约50个包,因此我几乎无法理解karaf日志,也无法确定哪个包首先重新启动。

    感谢您的时间和关注!

  • 共有1个答案

    濮景龙
    2023-03-14

    我认为你所描述的有些误解。

    update-strategy=reload不会导致包重新加载。它会导致蓝图上下文重新加载。

    您也不应该在捆绑包之间共享某些配置,因为众所周知,这会扰乱您的部署

    捆绑包重启还有其他原因。karaf特性安装试图提供karaf中整体所需的最优包集,以满足当前安装的特性集。一个典型的例子是,首先用包含可选的包导入的包来安装特性。目前它还不能提供这个包。然后安装第二个特性,提供包的导出器。现在可以满足包的可选依赖性,并且karaf将重启包。您可以通过使用feature:install -v来研究这种情况,这将向您显示哪些包被重启以及重启的原因。因此,也许这可以帮助您调试为什么会发生重启。

     类似资料:
    • 我定义了四个包: 使用apache felix(可分发的二进制文件),我发现我应该手动强制不解析(或启动)bundle 1,然后在启动bundle 3之前不解析bundle 2(否则会出现使用约束问题,因为bundle 2将使用package x版本1,而在bundle 4中将出现package x版本1和版本2 - Apache Karaf(或felix文件安装)是否应用了一种策略来强制启动包的

    • Gem安装bundler给我这个错误。 错误:找不到有效的宝石bundler( 解决办法是什么?

    • 我是C编程的初学者,如果我能得到一些关于如何重新启动程序的提示,我将不胜感激?我目前正在开发一个猜测游戏,用户有10次尝试猜测随机提供的秘密号码。我希望该程序能够从一开始就为用户提供新一轮游戏(尝试次数1猜测次数:),这意味着重新运行该程序。 以下是节目:

    • 我正在尝试部署我现有的项目,该项目在ApacheKaraf4.2.1(运行时)中内置了SpringDM(OSGI)1.2.1,但没有正确安装。ApacheKaraf4.2.1支持SpringDM(OSGI)1.2.1吗?我知道spring dm(OSGI)1.2.1不再正式支持spring,它已作为eclipse Gemini项目的名称转移到eclipse。我已经浏览了下面提到的一些链接:Spri

    • 无法解析 karaf 中的捆绑包。此处的日志: 在这个模块中,使用openjpa创建数据库。

    • 我使用以下两个命令在apache karaf中安装hawtio特性 功能:addurl mvn:io.hawt/hawtio-karaf/1.4.17/xml/features功能:安装hawtio 当我运行“features:install hawtio”时,我得到以下错误 “执行命令时出错:无法启动捆绑包mvn:io.hawt/hawtio-osgi-jmx/1.4.17(在功能hawtio.