L'aggiornamento dell'installazione di CFP o SP non riesce con ConstraintViolationException

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.

  1. Vai su http://aem-host:port/crx/de/index.jsp e accedi come utente amministratore.
  2. Naviga al nodo che causa l'errore. Per esempio, nell'errore di cui sopra, questo è /content/communities.
  3. Rinomina quel nodo, per esempio, /content/communities a /content/communities-old.
  4. Crea un nodo con il tipo di nodo corretto. Per esempio, /content/communities con il tipo di nodo sling: Folder invece di nt: folder.
  5. Fai clic su Salva tutto.
  6. 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.
  7. Fai clic su Salva tutto.

Note interne

Logo Adobe

Accedi al tuo account