Перенос пакета в AEM 6. javax.jcr.nodetype.ConstraintViolationException: элемент защищен

У меня есть пакет, построенный на AEM 5.6.1, и я проверил, что он работает должным образом. Однако, когда я пытаюсь развернуть его в AEM 6, я получаю следующую ошибку:

Caused by: javax.jcr.nodetype.ConstraintViolationException: Item is protected.
    at org.apache.jackrabbit.oak.jcr.session.ItemImpl$ItemWriteOperation.checkPreconditions(ItemImpl.java:99)
    at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:304)
    at org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:113)
    at org.apache.jackrabbit.oak.jcr.session.NodeImpl.remove(NodeImpl.java:207)
    at org.apache.jackrabbit.vault.fs.impl.io.FolderArtifactHandler.accept(FolderArtifactHandler.java:112)
    at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:880)
    at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:758)
    at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:795)
    at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:795)
    at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:795)
    at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:795)
    at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:795)

Как я могу решить эту ошибку? Какие файлы я должен начать просматривать, чтобы мой пакет работал в AEM 6?


person birdy    schedule 21.04.2015    source источник


Ответы (1)


Убедитесь, что в каждой папке есть файл .content.xml как минимум со следующим содержимым:

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:rep="internal"
    jcr:mixinTypes="[rep:AccessControllable]"
    jcr:primaryType="nt:folder"/>
person d33t    schedule 22.04.2015
comment
Тот же код отлично работает на AEM 5.6.1. Это что-то нужно для 6.0? - person Omnipresent; 22.04.2015
comment
Я знаю, у нас была та же проблема, когда мы переносили наши пакеты с CQ 5.6.1 на AEM 6.0. AEM 6.0 основан на OAK, поэтому вы должны ожидать, что все будет вести себя по-другому (и это, к сожалению, абсолютно так). - person d33t; 22.04.2015
comment
Примечание. Я также видел примеси, такие как rep:RepoAccessControllable, сгенерированные aem. - person Federico; 10.05.2016