如何使用AEM 6.2中的代码将命名空间从作者同步到发布
在激活某个文档以发布服务器时,该文档卡在复制队列中。通过检查日志,发现发布服务器中缺少某些命名空间。通过crx/explorer添加名称空间后,复制通过。必须在两台服务器上都有名称空间,否则复制将失败 其中,某个随机文档(尤其是PDF复制)的名称空间似乎丢失了,但被卡住/失败了 在Oak AEM 6.0之前,要将命名空间从作者同步到发布,可以从作者创建一个包并上传到发布服务器。但是,在6.0之后,不允许上载命名空间的包。对于AEM 6+,是否有任何方法可以将作者的命名空间同步到publish的命名空间 对于AEM 6+,是否有任何方法可以将作者的命名空间同步到publish的命名空间 TL;博士 是的,复制支持针对CQ 5.x和AEM 6.x的it OOTB。确保为安装复制包的用户授予了存储库级别的jcr:namespaceManagement权限,该权限允许管理名称空间 长版本 是的,有两种方法。要么让复制自动创建所需的名称空间,要么预安装名称空间 复制自动创建所需的命名空间 名称空间隐式地包含在Durbo复制包中。作为安装Durbo软件包的一部分,复制会在目标实例中自动创建缺少的名称空间。这是CQ 5.x和AEM 6.x的OOTB行为 安装Durbo包的用户必须具有足够的权限才能创建缺少的名称空间。可以通过中记录的配置定义此用户。此用户需要被授予命名空间管理权限 授予命名空间管理权限 您可以使用CRX/DE授予存储库级别的权限 以管理员身份登录到CRX/DE 单击“访问控制”选项卡 单击存储库 添加访问控制项 设置要授予特权的用户的名称 检查jcr:namespaceManagement权限 点击OK 不良配置的症状 复制队列被阻止,并记录类似于以下内容的堆栈跟踪如何使用AEM 6.2中的代码将命名空间从作者同步到发布,aem,Aem,在激活某个文档以发布服务器时,该文档卡在复制队列中。通过检查日志,发现发布服务器中缺少某些命名空间。通过crx/explorer添加名称空间后,复制通过。必须在两台服务器上都有名称空间,否则复制将失败 其中,某个随机文档(尤其是PDF复制)的名称空间似乎丢失了,但被卡住/失败了 在Oak AEM 6.0之前,要将命名空间从作者同步到发布,可以从作者创建一个包并上传到发布服务器。但是,在6.0之后,不允许上载命名空间的包。对于AEM 6+,是否有任何方法可以将作者的命名空间同步到publish的命
Caused by: javax.jcr.AccessDeniedException: Failed to register namespace mapping test1 -> http://localhost/test/1.0
at org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:231)
...
at com.day.cq.replication.impl.content.durbo.DurboImporter.createNode(DurboImporter.java:286)
... 108 common frames omitted
Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakAccess0000: Access denied
at org.apache.jackrabbit.oak.security.authorization.permission.PermissionValidator.checkPermissions(PermissionValidator.java:242)
...
at org.apache.jackrabbit.oak.plugins.name.ReadWriteNamespaceRegistry.registerNamespace(ReadWriteNamespaceRegistry.java:94)
... 113 common frames omitted
这是复制用户缺少jcr:namespaceManagement权限的明显迹象
手动同步名称空间
这适用于CQ 5.x和AEM 6.x,并利用Package Manager
为了传输新的名称空间,您需要使用包管理器在源实例上创建一个新的内容包。该包需要包括以下内容之一:
具有引用新命名空间的属性的节点
包含命名空间定义的.cnd文件
然后,您需要下载内容包并将其安装在目标实例中,同时使用被授予存储库级别jcr:namespaceManagement权限的用户登录。您如何在author上创建命名空间?我知道这是一个3年以上的答案,但是在哪里可以找到包含名称空间定义的.cnd文件呢?