保存在OSGi Console中的配置在哪里?

Ske*_*ler 4 osgi apache-felix aem aem-6

当我们在Apache Felix Web OSGi控制台的"配置"选项卡中更新组件的任何配置时,这些配置设置保存在哪里?这与AEM 6.0或以上有关.

ton*_*edz 11

手动保存的配置设置存储在crx-quickstart/launchpad/config目录中(在本地文件系统的AEM安装文件夹中),并且最重要的是.config存储在Content Respository中的文件中/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/*/config,无论是属性文件还是具有节点jcr:primaryType的JCR节点sling:OsgiConfig
  2. 类型为sling:OsgiConfigunder的节点/libs/*/config,这些是AEM附带组件的OOTB定义
  3. .config files来自<aem-installation-directory>/crx-quickstart/launchpad/config/本地文件系统.

根据Apache Sling JCR安装程序的OSGi配置,sling:OsgiConfig可以在手动更改配置时将节点写回.还有许多设置会影响所述配置的查找,因此最好让自己熟悉这个配置.

有关更全面的信息,请查看官方文档.

如果您试图让sling:OsgiConfig节点中存储的配置按预期工作,并且您不确定是否已在某处缓存了同一服务的另一个配置,那么这里的一系列步骤在AEM 6.4中始终如一:

  1. 删除sling:OsgiConfig刚刚创建的节点
  2. 转到Felix控制台configMgr,找到相关服务并删除配置.
  3. 重新创建sling:OsgiConfig节点(我通常将它们保存在CRX包中,我可以简单地重新安装)


Chr*_*der 1

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

data/cache/bundle7/date/config
Run Code Online (Sandbox Code Playgroud)

其中,bundle id 7 是 configadmin 包的 ID。