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

javax。jcr。nodetype。ConstraintViolationException强制子节点jcr:在新节点中找不到内容

连时铭
2023-03-14

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

    // get resource resolver
    ResourceResolver resourceResolver = resourceResolverFactory.getResourceResolver(Collections.<String, Object>singletonMap(JcrResourceConstants.AUTHENTICATION_INFO_SESSION, session));

    AssetManager assetMgr = resourceResolver.adaptTo(AssetManager.class);

    // creating directory in DAM Asset
    Node newParentNode = JcrUtil.createPath(splitParentPath, true, "sling:OrderedFolder", "nt:file", session, true);
    newParentNode.addNode("jcr:content", "nt:resource");

    // moving DAM Asset
    assetMgr.moveAsset(fileNode.getPath(), splitParentPath + "/" + newFileName); 

我确实遵循了这个JCRUtil APIhttps://helpx.adobe.com/experience-manager/6-2/sites/developing/using/reference-materials/javadoc/com/day/cq/commons/jcr/JcrUtil.html#createPath(节点,java.lang.字符串,布尔,java.lang.字符串,java.lang.字符串,会话,布尔),以及这个如何在cq5路径的基础上创建目录?

请帮忙!

共有1个答案

蓝侯林
2023-03-14

问题是createPath方法的自动保存标志已打开。这将尝试在您能够添加jcr:content子节点之前将节点提交到repo。

添加子节点后尝试保存

// creating directory in DAM Asset
Node newParentNode = JcrUtil.createPath(splitParentPath, true, "sling:OrderedFolder", "nt:file", session, false);
newParentNode.addNode("jcr:content", "nt:resource");
session.save()
 类似资料:
  • 我的CQ5中的一些页面。5.申请没有“jcr:content”节点。由于节点不存在,这些特定页面的属性不存在,用户无法修复。我想添加一个按钮,允许用户在缺少节点时添加节点。我已经能够添加一个按钮“Fix Properties”,它附带了一个自定义函数来检索现有节点,并且我能够检查jcr:content节点是否存在。我在任何地方都找不到关于如何从头创建节点的文档。我想这是一件很平常的事,但几乎找不到

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

  • 我想用XSLT转换XML文档。按名称和属性匹配的节点及其子节点应嵌套/移动到新节点中。 从转变 到 但是我的XSLT工作不好。您有什么提示吗,XSLT文件有什么问题? 非常感谢你 安德烈亚斯 我的XSLT 输出: 我的源XML文件 我希望在转换后的输出中将v:data节点及其子节点嵌套到一个新节点中。但只有属性名为“Custon”的v:data节点。转换后的XML文档应该如下所示 如果我从XSLT

  • 我需要以下xslt代码方面的帮助。我的意见如下: 我的预期输出为: 我曾尝试使用*/text()获取值节点的值,但我只从第一个孩子获得文本。将来我有很多这样的子元素。 提前谢谢。 你好,Minakshi

  • 我需要将子元素复制到父元素中。 输入 期望输出 我尝试的内容(输出与输入保持相同): 我肯定会错过一些非常简单的事情。子元素与父元素具有相同的名称,这应该不是问题?

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