当我尝试将属性设置为我的JCR节点时,我收到错误
javax.jcr.nodetype.ConstraintViolationException:没有匹配的属性定义:PROPERTY。
我是cq5的新手。有人可以帮我解决这个错误吗?
在jcr中,每个节点都有一个node-type(值为“jcr:primaryType”)。
大多数节点类型定义该节点上允许的属性模式。你不能只添加你喜欢的任何属性。它必须在架构中定义。如果您尝试添加并持久化(提交)未定义的属性,则可以获得此ConstraintViolationException
。
所以这就是可能发生的事情:您已尝试在具有严格架构的节点上创建和存储名为“PROPERTY”的属性,但不允许这样做。
如果您提供更多详细信息,您尝试在哪种类型的节点上进行操作,我可能能够查明问题。
例如,如果要将属性添加到qazxsw poi,则必须定义新的qazxsw poi类型并将其添加到节点。
这样您就可以添加所需的每个属性
这种更简单的方法是创建一个CND文件来定义所有属性
nt:file
你必须注册你的新mixin(你只需要这样做一次)
mixin
并将其添加到您的节点
<mc = 'http://myCompany.com/mc'>
[mc:fileProperties]
mixin
- mc:String1 (string)version
- mc:String2 (string) version
- mc:String3 (string) version
- mc:LongString1 (string) version
- mc:Date1 (date) version
- mc:Date2 (date) version
- mc:Number1 (long) version
- mc:Number2 (long) version
- mc:Boolean1 (boolean) version
- mc:Boolean2 (boolean) version
- mc:Choice1 (long) version
在这里你可以做到
JackrabbitNodeTypeManager manager = (JackrabbitNodeTypeManager)session.getWorkspace().getNodeTypeManager();
InputStream cndFile = ... // Get you CND file
JackrabbitNodeTypeManager.TEXT_X_JCR_CND );
我在使用WKND教程时在AEM中遇到了这个问题。下载解决方案包之后,我安装了第8章
org.apache.sling.ide.transport.RepositoryException:javax.jcr.nodetype.ConstraintViolationException:OakConstraint0004:/content/dam/wknd/en/contributors/stacey-roswells.jpg/jcr:content/renditions/cq5dam.thumbnail.140.100 .png / jcr:content [[oak:Resource]]:没有为jcr找到匹配的属性定义:uuid = 3f4b3593-7e5f-42a6-947a-80b67263469e引起:javax.jcr.nodetype.ConstraintViolationException:OakConstraint0004:/ content / dam /wknd/en/contributors/stacey-roswells.jpg/jcr:content/renditions/cq5dam.thumbnail.140.100.png/jcr:content[[oak:Resource]]:找不到jcr匹配的属性定义:uuid = 3f4b3593- 7e5f-42a6-947a-80b67263469e
如果我们记得点击,我们可以解决问题
aem-guides-wknd.ui.apps - > properties - > project facet - > REMOVE动态Web模块