【问题标题】:How to read external config file when starting a bundle jboss fuse karaf启动捆绑 jboss fuse karaf 时如何读取外部配置文件
【发布时间】:2018-12-06 22:56:20
【问题描述】:

问题很简单:在 karaf 上安装 kafka 模块后,我想从 apache kafka 打印所有主题。我需要从位于 jbossfuse/etc 中的 cfg 文件中获取属性并创建一个 KafkaConsumer 对象。我想实现 BundleActivator 以便能够在安装模块时启动方法。 问题是:如何从配置文件中获取属性? 我在这里找到了一些解决方案:some solution,他们说“你可以使用 OSGi 规范中的 ConfigAdimn 服务。”。我该如何使用它?欢迎所有带有代码的示例

【问题讨论】:

    标签: jboss osgi bundle karaf


    【解决方案1】:

    Karaf 使用 Felix-FileInstall 读取配置文件:http://felix.apache.org/documentation/subprojects/apache-felix-file-install.html 因此,如果有一个名为 kafka.cfg 的文件,它将拾取它并在 pid 'kafka' 下的 ConfigAdmin-Service 中注册一个配置。 您可以获取 ConfigAdmin-Service 并使用 Activator 获取配置并从那里读取该配置,但我强烈建议使用 DeclarativeServices 或 Blueprint 来与 OSGi-Framework 交互,如果可用,两者都支持注入配置。 因为否则您必须自己处理以下主题:

    • 目前还没有 ConfigAdmin,可能是因为您的捆绑包启动较早)
    • ConfigAdmin 更改(例如由于包刷新或更新)
    • 配置还没有注册(因为felix还没有读取)
    • 配置得到更新(例如somone更改文件)

    【讨论】:

      猜你喜欢
      • 2012-03-14
      • 1970-01-01
      • 2022-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      • 2021-08-08
      • 2023-03-07
      相关资源
      最近更新 更多