在批量资产发布期间,树激活因“未知的命名空间前缀”而失败

当您使用 管理发布快速发布 批量发布资源时,如果一个或多个资源包含使用未注册的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

要解决树激活失败问题,请执行以下步骤:

  1. 查看AEM错误日志,并识别​ 未知命名空间前缀 ​错误中报告的前缀。

  2. 使用Groovy脚本或JCR查询列出注册的命名空间,并使用使用未注册前缀的元数据属性标识资源。

  3. 添加repoinit配置以使用正确的URI注册缺少的命名空间前缀。

  4. 使用以下repoinit语法:

    code language-none
    register namespace (ns11) http://your-namespace-uri
    
  5. 通过您的AEM as a Cloud Service项目部署repoinit配置以在目标环境中注册命名空间。

  6. 通过运行Groovy脚本或检查JCR命名空间注册表来验证命名空间是否已注册。

  7. 针对受影响的资源或文件夹,再次运行 管理发布快速发布

  8. 确认以前由于未注册的命名空间而失败的资产现在已成功发布。

其他注释

注册命名空间前缀时,请使用正确的URI。 AEM要求为使用自定义命名空间的元数据属性提供有效的前缀到URI的映射。

相关阅读

recommendation-more-help
experience-cloud-kcs-help-kbarticles