Обновить содержимое узла в JCR 2.0 - PullRequest
4 голосов
/ 18 октября 2011

Я пытаюсь обновить узел в JCR 2.0

InputStream content = node.getProperty("jcr:content").getProperty("jcr:data").getBinary().getStream();

//TODO same with stream
Binary value = ...;

Node contentNode = node.getProperty("jcr:content");
contentNode.setProperty("jcr:content", value);

И я получаю исключение «javax.jcr.nodetype.ConstraintViolationException: элемент защищен». Что не так?

1 Ответ

4 голосов
/ 18 октября 2011

"jcr: content", на который вы ссылаетесь, обычно является именем дочернего узла (обычно типа nt: resource или чего-то подобного), а не свойством. Таким образом, ваш пример кода должен быть:

// read value
Binary value = node.getNode("jcr:content").getProperty("jcr:data").getBinary();

// update value
Binary value = ...;
node.getNode("jcr:content").setProperty("jcr:data", value);

См. Также служебные методы putFile () в классе JcrUtils библиотеки jackrabbit-jcr-commons.

...