当我们在Apache Felix Web OSGi控制台的“配置”选项卡中更新组件的任何配置时,这些配置设置保存在哪里?这与AEM 6.0或以上有关。
答案 0 :(得分:11)
手动保存的配置设置存储在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
sling:OsgiConfig
的属性文件或JCR节点
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
节点configMgr
,找到相关服务并删除配置。sling:OsgiConfig
节点(我通常将这些节点保存在我可以简单重新安装的CRX包中)答案 1 :(得分:1)
配置由felix configadmin包存储在felix bundle cache中。不确定此缓存在AEM中的位置。在Apache Karaf中,我的案例中的配置是:
data/cache/bundle7/date/config
其中bundle id 7是configadmin包的id。