java - 由于违反约束,节点 setProperty 在 Magnolia CMS 中给出 RepositoryException

标签 java jcr magnolia

我需要为节点设置以下所有属性,但我收到了 RepositoryException

'jcr:createdBy': 'admin'
'hideInNav': 'true'
'mgnl:template': 'something'
'jcr:created': '2020-01-09T14:14:13.555+01:00'
'mgnl:created': '2020-01-09T14:14:13.555+01:00'
'mgnl:createdBy': 'superuser'
'jcr:uuid': 'df7227a7-39e2-4e15-8d26-16b8b0657049'
'title': 'Sitemap'
'mgnl:lastModified': '2020-01-09T16:04:11.820+01:00'
'jcr:primaryType': 'mgnl:page'
'mgnl:lastModifiedBy': 'superuser'

这是我在循环中使用的代码来设置节点的上述属性:

try {
     String value= (String)entry.getValue();
     node.setProperty(entry.getKey(), value);
           }

} catch (ItemNotFoundException e) {
                // TODO Auto-generated catch block
            e.printStackTrace();
} catch (RepositoryException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
}

RepositoryException 的堆栈跟踪是:

javax.jcr.nodetype.ConstraintViolationException: Unable to perform operation. Node is protected.
        at org.apache.jackrabbit.core.ItemValidator.checkCondition(ItemValidator.java:276)
        at org.apache.jackrabbit.core.ItemValidator.checkModify(ItemValidator.java:248)
        at org.apache.jackrabbit.core.PropertyImpl.checkSetValue(PropertyImpl.java:278)
        at org.apache.jackrabbit.core.PropertyImpl.setValue(PropertyImpl.java:726)
        at org.apache.jackrabbit.core.NodeImpl$SetPropertyOperation.perform(NodeImpl.java:2058)
        at org.apache.jackrabbit.core.NodeImpl$SetPropertyOperation.perform(NodeImpl.java:2002)
        at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216)
        at org.apache.jackrabbit.core.NodeImpl.setProperty(NodeImpl.java:1924)
        at org.apache.jackrabbit.core.NodeImpl.setProperty(NodeImpl.java:1894)

有什么建议吗?您可以或不能设置哪些属性有任何限制吗?

最佳答案

简单的答案是:不要
您不应为任何 jcr:mgnl: 属性设置值。如果您尝试设置提醒值,它会正常工作。

关于java - 由于违反约束,节点 setProperty 在 Magnolia CMS 中给出 RepositoryException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59667382/

相关文章:

java - 捕获 InputMismatchException 直到它正确

jackrabbit - JCR 2.0 更新节点内容

Java 泛型类对象数组实例化

java - 向 FacesContext 添加消息会禁用自动完成功能

java - 使用StanfordCoreNLP提取两个实体之间的关系

java - 何时使用 JCR(内容存储库)而不是其他选项?

Jackrabbit 跨连接节点搜索

groovy - Magnolia 安排 Groovy 脚本

java - 使用 RegexpVirtualURIMapping 映射到 Magnolia 中的静态目录

java - Magnolia 6.1.1 分析器(小写字母和重音符号)