Java 使用modeshape递归移动JCR存储库中的节点
我正在尝试将一个节点及其子节点移动到JCR存储库中的另一个节点,但始终出现以下错误: 在工作区“默认”中的节点“/A/B[2]”找不到允许同名同级的节点定义 如果我理解正确,它会告诉我,我正在尝试在目标路径中创建一个ID为allready的节点。但事实并非如此 我的结构由两个父母组成,每个人有一个孩子: A-->B C-->D 我试图将D移到B,这样之后的结构将是: A-->B-->D C 这是我的代码,我希望路径设置正确:Java 使用modeshape递归移动JCR存储库中的节点,java,repository,nodes,jcr,modeshape,Java,Repository,Nodes,Jcr,Modeshape,我正在尝试将一个节点及其子节点移动到JCR存储库中的另一个节点,但始终出现以下错误: 在工作区“默认”中的节点“/A/B[2]”找不到允许同名同级的节点定义 如果我理解正确,它会告诉我,我正在尝试在目标路径中创建一个ID为allready的节点。但事实并非如此 我的结构由两个父母组成,每个人有一个孩子: A-->B C-->D 我试图将D移到B,这样之后的结构将是: A-->B-->D C 这是我的代码,我希望路径设置正确: private void moveNode(final Node mo
private void moveNode(final Node movedNode, final Node destinationNode)
throws RepositoryException {
System.out.println(movedNode.getPath()); // prints "/C/D"
System.out.println(destinationNode.getPath()); // prints "/A/B"
modeshape.execute(new JcrHandler<Object>() {
@Override
public Object execute(Session session) throws RepositoryException {
session.move(movedNode.getPath(), destinationNode.getPath());
return null;
}
});
}
private void moveNode(最终节点movedNode,最终节点destinationNode)
抛出RepositoryException{
System.out.println(movedNode.getPath());//prints”/C/D
System.out.println(destinationNode.getPath());//prints”/A/B
execute(新的JcrHandler(){
@凌驾
公共对象执行(会话会话)引发RepositoryException{
move(movedNode.getPath(),destinationNode.getPath());
返回null;
}
});
}
谢谢你的建议 当然路径不正确!愚蠢的我 将路径更改为此解决了问题:
session.move(movedNode.getPath(), destinationNode.getPath()+"/"+movedNode.getName());
我需要更仔细地阅读文档:
提供的destAbsPath在其最终元素上不能有索引。如果发生,则立即抛出RepositoryException。严格地说,destAbsPath参数实际上是新位置的父节点的绝对路径,附加了移动节点所需的新名称
来源:当然路径不正确!愚蠢的我 将路径更改为此解决了问题:
session.move(movedNode.getPath(), destinationNode.getPath()+"/"+movedNode.getName());
我需要更仔细地阅读文档:
提供的destAbsPath在其最终元素上不能有索引。如果发生,则立即抛出RepositoryException。严格地说,destAbsPath参数实际上是新位置的父节点的绝对路径,附加了移动节点所需的新名称
来源:当然路径不正确!愚蠢的我 将路径更改为此解决了问题:
session.move(movedNode.getPath(), destinationNode.getPath()+"/"+movedNode.getName());
我需要更仔细地阅读文档:
提供的destAbsPath在其最终元素上不能有索引。如果发生,则立即抛出RepositoryException。严格地说,destAbsPath参数实际上是新位置的父节点的绝对路径,附加了移动节点所需的新名称
来源:当然路径不正确!愚蠢的我 将路径更改为此解决了问题:
session.move(movedNode.getPath(), destinationNode.getPath()+"/"+movedNode.getName());
我需要更仔细地阅读文档:
提供的destAbsPath在其最终元素上不能有索引。如果发生,则立即抛出RepositoryException。严格地说,destAbsPath参数实际上是新位置的父节点的绝对路径,附加了移动节点所需的新名称
资料来源: