在激活某些文档到发布服务器时,它会卡在复制队列中。通过检查日志发现发布服务器中缺少某些命名空间。通过crx / explorer添加命名空间后,通过。(必须在两个服务器上都有命名空间,否则复制将失败。)
如果某个随机文档(特别是PDF)缺少命名空间,那么复制就会卡住/失败。
在Oak之前(AEM 6.0),要将命名空间从作者同步到发布,可以从作者创建包并上传到发布服务器。但是,在6.0之后,不允许上传包名称空间。 有没有办法将作者的名称空间与AEM 6+的发布名称空间同步?
答案 0 :(得分:1)
有没有办法将作者的命名空间与AEM 6+的发布命名空间同步?
TL; DR
是,Replication支持CQ 5.x和AEM 6.x的OOTB。确保为安装复制包的用户授予了存储库级jcr:namespaceManagement
权限,该权限允许管理名称空间。
长版
是的,有两种方法。让复制自动创建所需的命名空间或预先安装命名空间。
命名空间隐含在Durbo复制包中。作为安装Durbo软件包的一部分,复制会在目标实例中自动创建缺少的名称空间。这是CQ 5.x和AEM 6.x的OOTB行为。
安装Durbo软件包的用户必须具有足够的权限才能创建缺少的名称空间。可以通过Replication > Transport > User中记录的配置来定义此用户。此用户需要被授予命名空间管理权限。
您可以使用CRX / DE授予存储库级权限。
jcr:namespaceManagement
权限阻止复制队列,并记录类似于以下内容的堆栈跟踪
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并利用包管理器。
要传输新命名空间,您需要使用包管理器在源实例上创建新的内容包。该软件包需要包括:
.cnd
文件然后,您需要下载内容包并将其安装在目标实例中,同时使用被授予存储库级别jcr:namespaceManagement
权限的用户登录。