Java 移动内容

Java 移动内容,java,jackrabbit,jcr,Java,Jackrabbit,Jcr,我在Jackrabbit节点内容从一个路径移动到另一个路径时遇到了问题 正在尝试将文档列表从节点下jcr中的临时节点移动到不包含任何文档的新路径新节点 节点属于mixin类型 以下是用于创建文档节点的部分代码段: Node documentNode = session.getNode("/1/doc/1").addNode("Test_Sample", "et:document"); documentNode.setProperty(PROPERTY_ID, 123); documentNode

我在Jackrabbit节点内容从一个路径移动到另一个路径时遇到了问题

正在尝试将文档列表从节点下jcr中的临时节点移动到不包含任何文档的新路径新节点

节点属于mixin类型

以下是用于创建文档节点的部分代码段:

Node documentNode = session.getNode("/1/doc/1").addNode("Test_Sample", "et:document");
documentNode.setProperty(PROPERTY_ID, 123);
documentNode.setProperty(Property.JCR_TITLE, "Test Sample");
documentNode.setProperty(Property.JCR_DESCRIPTION, "Sample Description");
documentNode.setProperty(ETNodeTypes.ET_TAGS.getName(), "web");

Node resourceNode = documentNode.addNode (Property.JCR_CONTENT, "nt:resource");
resourceNode.setProperty (Property.JCR_MIMETYPE, "application/xstream");
resourceNode.setProperty (Property.JCR_ENCODING, "UTF-8");
Binary value = session.getValueFactory().createBinary(new ByteArrayInputStream(document.getData()));
resourceNode.setProperty (Property.JCR_DATA, value);

Calendar lastModified = Calendar.getInstance ();
resourceNode.setProperty (Property.JCR_LAST_MODIFIED, lastModified);
session.save();

VersionManager versionManager = session.getWorkspace().getVersionManager();
documentNode.addMixin(JcrConstants.MIX_VERSIONABLE);
versionManager.checkin(documentNode.getPath());
doc.setVersionNumber(versionManager.getBaseVersion(documentNode.getPath()).getName());
return documentNode.getIdentifier();
节点类型说明:

/**
* Document node
*/
[et:document] > nt:file, mix:title, mix:versionable, mix:shareable
+ * (nt:file) VERSION
- et:tags multiple
- et:role multiple
- et:id (LONG)
希望使用jcr api本身移动内容,而不是让所有子节点迭代并移动到目标文件夹


将Jackrabbit core 2.6.0与JCR 2.0一起使用。

不确定您的确切问题是什么,您可以使用或来移动节点,我正在链接的API文档解释了这些差异


确保目标节点定义接受您在其下移动的节点类型,或使用nt:非结构化目标节点开始,因为它接受其下的任何节点类型。

在保存会话之前,请尝试此代码。session.movesrcAbsPath,destAbsPath;