为什么我会得到;javax.jcr.PathNotFoundException“;AEM上何时存在路径?
我正在尝试将模板的节点树复制到名为“root”的节点,如下所示:为什么我会得到;javax.jcr.PathNotFoundException“;AEM上何时存在路径?,java,aem,jcr,Java,Aem,Jcr,我正在尝试将模板的节点树复制到名为“root”的节点,如下所示: Workspace workspace = session.getWorkspace(); workspace.copy(templatePath + "/initial/jcr:content/root", contentNode.getPath() + "/root"); Node rootNode = contentNode.getNode("root");
Workspace workspace = session.getWorkspace();
workspace.copy(templatePath + "/initial/jcr:content/root", contentNode.getPath() + "/root");
Node rootNode = contentNode.getNode("root");
templatePath是指向模板的字符串。我正在尝试复制模板路径下的“/initial/jcr:content/root”,并将其粘贴到节点contentNode下名为“root”的子节点。
我运行了上面的代码,在最后一行得到了javax.jcr.PathNotFoundException。当我在AEM上转到CrxDe时,节点树已被复制和粘贴,尽管我收到了错误消息,但路径实际上存在。我试图补充
session.save();
我抄完之后。但相同的错误仍然存在,尽管节点存在并且已被复制
原因是什么?在再次使用
contentNode
之前,请尝试添加会话。刷新()
。在再次使用contentNode
之前,请尝试添加会话。刷新()
而不是会话。保存()
。在再次使用contentNode
之前,请尝试添加会话。刷新()
“AEM”,如“Adobe体验云”(我不得不用谷歌搜索)?Adobe Experience Manager不需要在工作区之后保存,复制,因为它不会在会话上运行,并且会立即应用更改。但是,您拥有的contentNode
是当前会话的一部分,因此它可能不是最新的(或者它会缓存其子项列表)。如果Session#refresh
不起作用,只需再次尝试解析节点。“AEM”,如“Adobe体验云”(我不得不用谷歌搜索)?Adobe Experience Manager无需会话#在工作区#复制
后保存
,因为它不会对会话进行操作,并且会立即应用更改。但是,您拥有的内容节点
是当前会话的一部分,因此它可能不是最新的(或者它会缓存其子项列表)。如果Session#refresh
没有帮助,请重新尝试解析节点。