Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用AEM 6.2中的代码将命名空间从作者同步到发布_Aem - Fatal编程技术网

如何使用AEM 6.2中的代码将命名空间从作者同步到发布

如何使用AEM 6.2中的代码将命名空间从作者同步到发布,aem,Aem,在激活某个文档以发布服务器时,该文档卡在复制队列中。通过检查日志,发现发布服务器中缺少某些命名空间。通过crx/explorer添加名称空间后,复制通过。必须在两台服务器上都有名称空间,否则复制将失败 其中,某个随机文档(尤其是PDF复制)的名称空间似乎丢失了,但被卡住/失败了 在Oak AEM 6.0之前,要将命名空间从作者同步到发布,可以从作者创建一个包并上传到发布服务器。但是,在6.0之后,不允许上载命名空间的包。对于AEM 6+,是否有任何方法可以将作者的命名空间同步到publish的命

在激活某个文档以发布服务器时,该文档卡在复制队列中。通过检查日志,发现发布服务器中缺少某些命名空间。通过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 不良配置的症状 复制队列被阻止,并记录类似于以下内容的堆栈跟踪

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文件呢?