7

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

4

2 回答 2

13

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

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

  1. 下的节点,无论是属性文件还是具有节点的/apps/*/configJCR 节点jcr:primaryTypesling:OsgiConfig
  2. sling:OsgiConfig类型under的节点/libs/*/config,这些是 AEM 附带的组件的 OOTB 定义
  3. .config files<aem-installation-directory>/crx-quickstart/launchpad/config/本地文件系统。

根据Apache Sling JCR Installer的 OSGi 配置,当您手动更改配置时,可以将sling:OsgiConfig节点写回。还有许多设置会影响所述配置的查找,因此熟悉此配置是个好主意。

请查看官方文档以获取更全面的信息。

如果您尝试让存储在sling:OsgiConfig节点中的配置按预期工作,并且您不确定同一服务的另一个配置是否已缓存在某处,以下是在 AEM 6.4 中一直对我有用的一系列步骤:

  1. 删除sling:OsgiConfig刚刚创建的节点
  2. 进入 Felix 控制台configMgr,找到相关服务并删除配置。
  3. 重新创建sling:OsgiConfig节点(我通常将它们保存在 CRX 包中,我可以简单地重新安装)
于 2017-02-20T09:14:33.060 回答
1

配置由 felix configadmin 包存储在 felix 包缓存中。不确定此缓存在 AEM 中的位置。在 Apache Karaf 中,我的配置位于:

data/cache/bundle7/date/config

其中 bundle id 7 是 configadmin bundle 的 id。

于 2017-02-20T08:44:31.403 回答