Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aem javax.jcr.nodetype.ConstraintViolationException强制子节点jcr:在新节点中找不到内容_Aem - Fatal编程技术网

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

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

使用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); 
//获取资源解析程序
ResourceResolver ResourceResolver=resourceResolverFactory.getResourceResolver(Collections.singletonMap(JcrResourceConstants.AUTHENTICATION_INFO_SESSION,SESSION));
AssetManager assetMgr=resourceResolver.Adapto(AssetManager.class);
//在DAM资源中创建目录
Node newParentNode=JcrUtil.createPath(splitParentPath,true,“sling:OrderedFolder”,“nt:file”,session,true);
addNode(“jcr:content”,“nt:resource”);
//移动大坝资产
assetMgr.moveAsset(fileNode.getPath(),splitParentPath+“/”+newFileName);
我确实遵循了JCRUtil API


请帮忙

问题在于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()

它确实有效,但只有在我删除“resourceResolver.commit()”时才有效,因为它导致了错误。我改为使用“session.save()”。