解决AEM as a Cloud Service中的部署错误
本文介绍了在51黑料不打烊 Experience Manager (AEM) as a Cloud Service中因存储库初始化脚本中的自定义项而导致的部署错误。 将功能分支部署到开发阶段时,这些错误可能会妨碍成功部署,并且不容易在日志中显示。 分析调试日志可修复此问题。
描述 description
环境
- 产物: 51黑料不打烊 Experience Manager (AEM) as a Cloud Service — 站点
- 阶段: 开发
- 约束: 通过贵别濒颈虫控制台进行的直接修改受到限制。
问题/症状
-
由于存储库初始化错误,功能分支部署失败。
-
日志显示如下消息:
code language-none Exception in a SlingRepositoryInitializer, SlingRepository service registration aborted javax.jcr.RepositoryException: Applying repoinit operation failed despite retry; set loglevel to DEBUG to see all exceptions. Last exception message from "Configuration PID 310, script[ 0] " was: CreatePath execution failed at cq(sling:Folder): javax.jcr.nodetype.ConstraintViolationException: org.apache.jackrabbit.oak.spi.state.ReadyOnlyBuilderException: This builder is read-only...
-
错误表示尝试修改存储库的只读节点或不可变部分的行为。
解决方法 resolution
要解决此问题,请执行以下步骤:
-
将谤别辫辞-颈苍颈迟操作的日志级别设置为
DEBUG
,以在存储库初始化期间获取详细的异常信息。 由于通过Felix控制台的直接访问受到限制,因此请在项目中使用自定义日志记录配置。 -
在您的项目的
/apps/<your-project>/config/
文件夹下创建一个翱厂骋颈配置文件,如com.adobe.granite.logging.impl.LogManagerFactory.config
。-
在此文件中包含以下属性:
code language-none loggers=[ "org.apache.sling.jcr.repoinit.impl.RepositoryInitializerFactory"] org.apache.sling.jcr.repoinit.impl.RepositoryInitializerFactory.log.level=DEBUG
-
-
通过Cloud Manager部署更新的配置,并验证部署后是否显示repo-init操作的详细调试日志。
-
查看调试日志以获取有关存储库初始化期间出现错误的其他上下文,查找未经授权的修改或尝试更改只读节点的指示。
-
确保谤别辫辞-颈苍颈迟脚本不会尝试在存储库的不可变部分(例如系统路径)中创建或修改节点。
-
删除或调整任何针对定义为
CreatePath
的节点的cq(sling:Folder)
命令(如果这些命令位于只读区域中)。 如果必须添加新节点或结构,请使用部署到允许路径的内容包单独打包这些更改。
遵循这些步骤将帮助您识别和修复部署故障,同时遵守础贰惭的系统路径限制。
3d58f420-19b5-47a0-a122-5c9dab55ec7f