【发布时间】:2017-02-20 08:25:47
【问题描述】:
当我们在 Apache Felix Web OSGi 控制台的“配置”选项卡中更新组件的任何配置时,这些配置设置保存在哪里?这是针对 AEM 6.0 或更高版本的。
【问题讨论】:
标签: osgi aem apache-felix aem-6
当我们在 Apache Felix Web OSGi 控制台的“配置”选项卡中更新组件的任何配置时,这些配置设置保存在哪里?这是针对 AEM 6.0 或更高版本的。
【问题讨论】:
标签: osgi aem apache-felix aem-6
手动保存的配置设置存储在 crx-quickstart/launchpad/config 目录中(在本地文件系统中的 AEM 安装文件夹中),除此之外,作为 .config 文件存储在位于 /apps/system/config 的 Content Respository 中。
例如,如果您要查找 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 的节点sling:OsgiConfig 的JCR 节点
/libs/*/config 下类型为 sling:OsgiConfig 的节点,这些是 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节点configMgr,找到相关服务并删除配置。sling:OsgiConfig 节点(我通常将它们保存在 CRX 包中,我可以简单地重新安装)【讨论】:
配置由 felix configadmin 包存储在 felix 包缓存中。不确定此缓存在 AEM 中的位置。在 Apache Karaf 中,我的配置位于:
data/cache/bundle7/date/config
其中 bundle id 7 是 configadmin bundle 的 ID。
【讨论】: