Problema
Quando aggiorni AEM, installi un Service Pack (SP) o un pacchetto di correzioni cumulativo (CFP), si verifica una ConstraintViolationException registrata nel file error.log.
Example #1:
Nell'esempio sottostante, l'errore riguardava il nodo /content/communities durante l'installazione di AEM6.3 SP1 CFP2. Quel nodo è normalmente una cartella sling: ma sull'ambiente con l'errore, il nodo era una cartella nt:.
03.04.2018 16:28:09.921 *ERROR* [http-10.158.146.131:25104-2] org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage Error during install. javax.jcr.nodetype.ConstraintViolationException: OakConstraint0001: /content/communities[[nt:folder]]: No matching definition found for child node enablement with effective type [nt:unstructured, rep:AccessControllable]
Esempio #2:
Nell'esempio sottostante, un errore simile ha interrotto l'aggiornamento da AEM 6.0 a 6.3. L'installazione di un pacchetto non è riuscita perché il nodetype di /libs/settings/granite/operations/maintenance/granite_weekly era nt: folder invece di sling: Folder.
21.09.2017 12:03:18.132 *ERROR* [OsgiInstallerImpl] com.adobe.granite.installer.factory.packages.impl.PackageTransformer Error while processing install task of day/cq60/product:cq-platform-content:1.3.234. org.apache.jackrabbit.vault.packaging.PackageException: javax.jcr.nodetype.ConstraintViolationException: OakConstraint0001: /libs/settings/granite/operations/maintenance/granite_weekly[[nt:folder]]: No matching definition found for child node granite_AuditLogMaintenanceTask with effective type [nt:unstructured]
Ambiente
AEM 6.x
Causa
La causa è dovuta alle versioni legacy di AEM che hanno un tipo di nodo diverso per alcune cartelle. Quando il tipo di nodo cambia nelle versioni future, questo errore si verifica e interrompe gli aggiornamenti e/o le installazioni di patch.
Risoluzione
Segui la procedura seguente prima di applicare il pacchetto di aggiornamento o di correzione. Assicurati che non vi siano utenti sul sistema.
- Vai su http://aem-host:port/crx/de/index.jsp e accedi come utente amministratore.
- Naviga al nodo che causa l'errore. Per esempio, nell'errore di cui sopra, questo è /content/communities.
- Rinomina quel nodo, per esempio, /content/communities a /content/communities-old.
- Crea un nodo con il tipo di nodo corretto. Per esempio, /content/communities con il tipo di nodo sling: Folder invece di nt: folder.
- Fai clic su Salva tutto.
- Spostatutti i sottonodi del vecchio nodo su quello più recente che ha il tipo di nodo corretto. Ad esempio, sposta tutti i subnodi di /content/communities-old a /content/communities.
- Fai clic su Salva tutto.
Note interne
Accedi al tuo account