featuresBoot 在 Fuse 7 (Karaf 4.2) 中不工作

featuresBoot not working in Fuse 7 (Karaf 4.2)

我正在将我们的代码从 Fuse 6 迁移到 Fuse 7(开发人员版本)。

我们启动了很多实例,所以我需要像 Fuse 6 一样自动加载功能,但它不起作用。

我在 /etc/org.apache.karaf.features.cfg

中添加以下内容
featuresBoot = \
    ...
    transaction-manager-narayana/5.7.2.Final, \ 
    camel-hl7/2.21.0.fuse-000077-redhat-1,\
    camel-mina2/2.21.0.fuse-000077-redhat-1,\
    camel-beanio/2.21.0.fuse-000077-redhat-1

并希望它安装 camel-hl7、camel-mina2 和 camel-beanio。 但是当我签入客户端时,它显示 "Uninstalled".

如果我用 feature:install

手动安装它们

我还需要做什么?帮我欧比万。

featuresBoot 属性 的 Red Hat Fuse 7(和 Karaf 4 甚至更早版本)被使用 仅一次 - 当 Karaf 功能服务启动时第一次。当读取和处理 etc/org.apache.karaf.features.cfg 文件时,要素服务将其 bootDone 标志设置为 true

如果您希望在 运行 Fuse/Karaf 之后处理该功能并在以后添加新功能,则必须删除 data/cache 目录。

然而,这通常不是这样做的方式。如果您启动 Fuse/Karaf,您可以简单地安装您想要的附加功能 - 而无需添加到 etc/org.apache.karaf.features.cfg。只需调用 feature:install.

如果您需要具有您想要的功能的特殊 Karaf 发行版,请查看 Karaf 手册中关于 custom distributions 的部分。

对于 Red Hat Fuse 7,有专门的快速入门说明如何操作 - 检查 FUSE_HOME/quickstarts/custom

谜团解开了。呃,这确实是愚蠢——虽然,我认为这不是我们的一部分。

错误是尾随 space,在您的 'missing' 特征所在行上方的行继续反斜杠之后。我在我的 org.apache.karaf.features.cfg 中发现了这个,并验证了它是罪魁祸首。我在你的片段的copy-paste中看到了它。

    transaction-manager-narayana/5.7.2.Final, \ 
                                               ^
                                               |
                                               here

我觉得这是 Karaf 代码中的一个重大疏忽。大概 config-admin 服务有一些格式规则——所以这可能是解决它的地方。如果它至少会记录一个错误,那就太好了。