osgi - 在 OSGi 控制台中进行的配置保存在哪里?

标签 osgi aem apache-felix aem-6

当我们在 Apache Felix Web OSGi 控制台的配置选项卡中更新组件的任何配置时,这些配置设置保存在哪里?这是针对 AEM 6.0 或更高版本。

最佳答案

手动保存的配置设置存储在 crx-quickstart/launchpad/config 中。目录(在本地文件系统的 AEM 安装文件夹中),最重要的是,作为 .config位于 /apps/system/config 的内容存储库中的文件.

例如,如果您正在寻找 com.example.MyComponent 的配置,您可以在 crx-quickstart/launchpad/config/com/example/MyComponent.config 中找到它作为文本文件(在本地文件系统中)和在 /apps/system/config/com.example.MyComponent.config在您的内容存储库中。

当您在 OSGi 控制台中手动更改设置时,这两个位置的文件会更新。

在 AEM 中,您还可以将配置存储在类型为 sling:OsgiConfig 的 JCR 节点中。 .当您手动保存配置时,这些不会被创建或更新,但它们提供了一种将配置作为内容管理的简洁方式。

当 AEM 查找配置时,将使用以下解析顺序:

  • /apps/*/config下的节点,无论是属性文件还是带有节点 jcr:primaryType 的 JCR 节点的 sling:OsgiConfig
  • 类型为 sling:OsgiConfig 的节点下 /libs/*/config ,这些是 AEM 附带的组件的 OOTB 定义
  • .config files来自 <aem-installation-directory>/crx-quickstart/launchpad/config/在本地文件系统上。

  • 根据 Apache Sling JCR 安装程序的 OSGi 配置,sling:OsgiConfig当您手动更改配置时,节点可以被写回。还有许多设置会影响所述配置的查找,因此最好熟悉此配置。

    请查看 official documentation以获得更全面的信息。

    如果您尝试将配置存储在 sling:OsgiConfig 中节点按预期工作,并且您不确定是否已将同一服务的另一个配置缓存在某处,以下是在 AEM 6.4 中对我始终有效的一系列步骤:
  • 删除 sling:OsgiConfig您刚刚创建的节点
  • 转到 Felix 控制台的 configMgr ,找到相关服务并删除配置。
  • 重新创建 sling:OsgiConfig节点(我通常将它们保存在 CRX 包中,我可以简单地重新安装)
  • 关于osgi - 在 OSGi 控制台中进行的配置保存在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42339618/

    相关文章:

    java - 无法启动 OSGi 包,缺少 com.ibm.uvm.tools

    gradle - 找不到ID为 'osgi'的插件

    adobe - AEM 工作流程 - 使用上一流程步骤中收集的数据在自定义对话框中设置值

    java - 同一 OSGI 包中的多个类加载器导致类转换异常

    java - apache karaf 中的 activemq,使用 xbean 加载配置

    java - 菲利克斯 : Configuring bundle cache location to a temporary folder

    aem - 如何在AEM组件中使用onclick方法

    json - 如何动态修改JSON结构化数据,修改脚本标签内每个键的值

    java - 使用 mariadb 驱动程序时未找到 JDBC、Socket 工厂

    java - 在 IntelliJ IDEA 11 中运行 Apache Felix 4.0.2