在批量资产发布期间,树激活因“未知的命名空间前缀”而失败
当您使用 管理发布 或 快速发布 批量发布资源时,如果一个或多个资源包含使用未注册的JCR命名空间前缀的元数据属性,则AEM可能会失败,并出现 未知的命名空间前缀 错误。 使用repoinit将缺少的命名空间注册为正确的URI,然后再次运行发布操作。
描述 description
环境
Adobe Experience Manager (AEM) as a Cloud Service
问题/症状
当您使用管理发布(树激活)或 快速发布 从DAM文件夹批量发布资产时,发布工作流会失败,并出现与未注册的命名空间前缀相关的错误。
症状包括:
- 管理发布在发布工作流期间失败或停止。
- 快速发布对于单个资源或小型选择成功,但在较大的批量发布操作期间失败。
- 某些资产发布成功,但整个发布作业失败。
- 错误日志包含与以下内容类似的消息:
javax.jcr.NamespaceException: Unknown namespace prefix: ns11
ReplicationException: One or more agents failed to replicate.
DistributionException: Failed to create content package
... failed to resolve namespace prefix
当所选资源包含使用未注册JCR命名空间前缀(如ns11)的元数据属性时,会发生此问题。
根本原因
发布工作流失败,因为一个或多个资产包含带有JCR命名空间前缀的元数据,但该元数据未在存储库中注册。 在内容打包和复制期间,AEM无法解析该前缀,因此批量发布操作失败。
解决方法 resolution
要解决树激活失败问题,请执行以下步骤:
-
查看AEM错误日志,并识别 未知命名空间前缀 错误中报告的前缀。
-
使用Groovy脚本或JCR查询列出注册的命名空间,并使用使用未注册前缀的元数据属性标识资源。
-
添加
repoinit配置以使用正确的URI注册缺少的命名空间前缀。 -
使用以下
repoinit语法:code language-none register namespace (ns11) http://your-namespace-uri -
通过您的AEM as a Cloud Service项目部署
repoinit配置以在目标环境中注册命名空间。 -
通过运行Groovy脚本或检查JCR命名空间注册表来验证命名空间是否已注册。
-
针对受影响的资源或文件夹,再次运行 管理发布 或快速发布。
-
确认以前由于未注册的命名空间而失败的资产现在已成功发布。
其他注释
注册命名空间前缀时,请使用正确的URI。 AEM要求为使用自定义命名空间的元数据属性提供有效的前缀到URI的映射。
experience-cloud-kcs-help-kbarticles