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

Apache Karaf如何对捆绑包进行排序以进行安装和启动?

充培
2023-03-14

我定义了四个包:

bundle 1 : export package x version 1
bundle 2 : import package x ver [1,2] and export package y;y uses x    
bundle 3 : export package x version 2
bundle 4 : import package y and also import package x version 2

使用apache felix(可分发的二进制文件),我发现我应该手动强制不解析(或启动)bundle 1,然后在启动bundle 3之前不解析bundle 2(否则会出现使用约束问题,因为bundle 2将使用package x版本1,而在bundle 4中将出现package x版本1和版本2 -

Apache Karaf(或felix文件安装)是否应用了一种策略来强制启动包的顺序,以避免这类问题?

共有3个答案

孙朝明
2023-03-14

Felix FileInstall 没有任何排序功能。

启动顺序并不重要(捆绑包应该能够以任何顺序启动),但是一个好的管理代理应该能够在单个操作中安装和解析一批捆绑包。但是,FileInstall在轮询文件系统目录时安装/解析/启动捆绑包。因此,FileInstall实际上不可用于生产部署。

我对Karaf一无所知,但是任何简单地轮询目录的管理代理都可能有同样的问题。

百里渊
2023-03-14

Apache Karaf会自动向deploy文件夹中的包添加一个startlevel,这是可配置的。它的默认值是50。所以你所有的定制包都是作为50级开始安装的。这也确保了karaf本身的基本包已经启动并运行,尤其是文件安装包。

彭礼骞
2023-03-14

您应该尝试将 Karaf 功能用于此类部署。创建一个包含一个功能的特征文件,并将所有捆绑包添加到此功能。然后,Karaf 将加载所有捆绑包,并在一次传递中解析并启动它们。因此,解析程序应该能够正确解析所有捆绑包。

 类似资料:
  • 问题内容: 我在Java中有一个双打列表,我想按降序对ArrayList进行排序。 输入如下: 输出应该是这样的 问题答案: 那会做你想要的。请记住要导入!

  • 问题内容: 我需要按字母顺序对链接列表进行排序。我有一个完整的乘客姓名链接列表,需要将乘客姓名按字母顺序排序。一个人怎么做?有人有参考资料或视频吗? 问题答案: 您可以用来按字母顺序对事物进行排序。

  • 我正面临来自karaf服务器的令人恼火的行为:标题说明了一切,当我使用feature:install命令时,已安装的捆绑包会重新启动。 * 项目背景 * > 我处理的大多数捆绑包都是骆驼路线,其他捆绑是常见的工具,由路线共享。 因此,我有一个2级项目:首先安装的公共部分,以及所有依赖于公共部分的camel路由(取决于Maven的观点)。 *场景* 启动卡拉夫的新实例 安装常用功能 安装骆驼路线功能

  • 我有两个捆绑说A和B。A 依赖于 B(在 A 的 MANIFEST 中指定为 Required-Bundle:B)。 现在我安装两个A, B包一个接一个(c 我从异常中了解到捆绑包B尚未启动(已解决)。现在如何解决这个问题呢? 解决这个问题的唯一方法是排序包 顺便说一下,我用的是春分。

  • 我试图排序列的. csv文件。这些是列的名称和顺序: 这是我想要的订单: 当前我的代码如下所示: 使用我当前的代码,我得到以下列顺序的结果: 所以我已经想出了我必须传递一个函数给排序函数来指定我希望它如何排序,但是我找不到一个函数来做这件事。 非常感谢您的任何意见!