当前位置: 首页 > 知识库问答 >
问题:

JCR移动内容

范浩荡
2023-03-14

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

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

节点是混合类型的。

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

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。

共有1个答案

甄阳朔
2023-03-14

不确定你的具体问题是什么,你可以使用任何一个会话。移动或工作空间。move to move nodes,我正在链接的API文档解释这些差异。

确保目标节点定义接受在其下移动的节点类型,或者使用一个nt:unstructured目标节点作为开始,因为它接受其下的任何节点类型。

 类似资料:
  • JCR

    JCR代表Java代码审查器,是另一个基于Python的工具。与其他工具不同的是,它不直接与源代码管理系统融合,而是被设计成整个可用文件。JCR加强了更多正式的进程,比如跟踪进程和审查会议功能。 对于大规模、正式的开发组织,我首先会选择JCR。基于Web和开放源码的项目可以使用ReviewBoard或Codetriker会比较好些。 Rietveld值得关注,根据Google的搜索结果显示,现在它

  • eXo JCR 是个强大的开源 Java Specification Request 170 实现,被认为是 Java 技术 API 的内容库。eXo JCR 的主要目的是抽象化数据存储和检索的复杂性,提升性能。 标准特性: 支持结构化和非结构化的内容 支持标准的 XML 导入和导出 使用 SQL/XPath 查询 全文本搜索 访问控制 版本控制 事物 明确的锁定 内容观察 FTP/WebDav

  • 使用JcrUtil时。createPath要在AEM的DAM资产中创建文件夹(目录),将引发异常,错误为OakConstraint0025:/content/DAM/upload/Type/99/MBT/front[[nt:file]]:强制子节点jcr:在新节点中未找到内容。这可能意味着子jcr:content节点需要与目录同时创建。所以我真的不知道如何解决这个问题。 我确实遵循了这个JCRUt

  • 我想搜索CQ5.6(AEM)实例中包含的JCR存储库中包含给定字符串的所有文件。由于对JCR对XPath(或JCR-SQL2)的解释不熟悉,我在表达查询方面不太成功。 这将得到我所有的文件: 这就是我希望如何限制上面包含的文件列表: 类型为。以上这些似乎都不起作用。我哪里做错了?

  • 我有一个下拉列表,其中选项的值是,,等。最后一个是父节点的属性,比如是节点的属性 你知道如何以这种方式获得价值吗。 谢谢

  • 温馨提示:该项目已停止维护 SPT JCR Manager 是一个简单的Web应用程序用来浏览和管理 Java 内容资源库 (JCR),JCR Manager 使用一个树形列表来显示资源库中的条目,通过 XPath 和 SQL 来对整个资源库进行搜索,支持在节点和属性上的 CRUD 操作。