小编gob*_*lin的帖子

CQ 5.6 反向复制:已触发复制,但未找到或选择代理

我正在尝试为 CQ5.6 编写自定义文件上传组件,但遇到了反向复制的问题。在 Publish 实例中创建的节点,但未复制到 Author 实例。调用复制器后,error.log 中出现下一行:

\n\n
com.day.cq.replication.impl.ReplicatorImpl Replication triggered, but no agent found or selected.\n
Run Code Online (Sandbox Code Playgroud)\n\n

复制代理已打开。在其他情况下,例如用户表单,复制工作成功,所以我认为问题出在我的代码中的某个地方。有我使用的代码:

\n\n
Node node = session.getNode(path);\nValueFactory valueFactory = session.getValueFactory();\nBinary contentValue = valueFactory.createBinary(is);\nNode parent = node.addNode(fileName, "nt:unstructured");\nparent.setProperty(DELETED, false);\nparent.setProperty(DESCRIPTION, description);\nNode fileNode = parent.addNode(fileName, "nt:file");\nfileNode.addMixin("mix:referenceable");\nNode resNode = fileNode.addNode("jcr:content", "nt:resource");\nresNode.setProperty(Property.JCR_DATA, contentValue);\nCalendar lastModified = Calendar.getInstance();\nlastModified.setTimeInMillis(lastModified.getTimeInMillis());\nresNode.setProperty(Property.JCR_LAST_MODIFIED, lastModified);\nparent.setProperty("cq:distribute", true);\nparent.setProperty("cq:lastModified", Calendar.getInstance());\nparent.setProperty("cq:lastModifiedBy", session.getUserID());\nsession.save();\nreplicator.replicate(session, ReplicationActionType.ACTIVATE, parent.getPath());\nsession.logout();\n
Run Code Online (Sandbox Code Playgroud)\n\n

我应该怎么做才能使反向复制适用于我在 servlet 中创建的节点?

\n\n

更新: \n根据 Tomek R\xc4\x99kawek 的回答,我更新了我的代码,但问题仍然没有解决。这是新代码:

\n\n
ResourceResolver resourceResolver = resolverFactory.getAdministrativeResourceResolver(null);\nSession session = resourceResolver.adaptTo(Session.class);\nString path = (String) componentContext.getProperties().get(SAVEPATH);\nNode node = session.getNode(path);\nValueFactory …
Run Code Online (Sandbox Code Playgroud)

aem

2
推荐指数
1
解决办法
6720
查看次数

标签 统计

aem ×1