Problem

Beim Aktualisieren von AEM, Installieren eines Service Packs (SP) oder eines kumulativen Hotfix-Pakets (CFP) wird ConstraintViolationException im error.log protokolliert.

Beispiel 1:
Im folgendem Beispiel bezieht sich der Fehler auf den /content/communities-Knoten während der Installation von AEM 6.3 SP1 CFP2.  Dieser Knoten ist normalerweise ein sling: Ordner, aber in der Umgebung des Fehlers war der Knoten nt: Ordner.

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]

Beispiel 2:
Im folgenden Beispiel hat ein ähnlicher Fehler die Aktualisierung von AEM 6.0 auf 6.3 abgebrochen.  Eine Paketinstallation ist fehlgeschlagen, weil nt: Ordner der Knotentyp von /libs/settings/granite/operations/maintenance/granite_weekly war, statt sling: Ordner.

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]

Umgebung

AEM 6.x

Ursache

Die Ursache sind Altversionen von AEM, die einen anderen Knotentyp für bestimmte Ordner aufweisen.  Wenn sich der Knotentyp in aktuellen Versionen ändert, tritt dieser Fehler auf, und unterbricht Aktualisierungen und / oder Patch-Installationen.

Lösung

Befolgen Sie die nachfolgenden Schritte, bevor Sie die Aktualisierung oder das Hotfix-Paket anwenden. Vergewissern Sie sich, dass sich keine Benutzer im System befinden.

  1. Gehen Sie auf http://aem-host:port/crx/de/index.jsp und melden Sie sich als Administator an.
  2. Navigieren Sie zu dem Knoten, der den Fehler verursacht. Im obigen Fehler, ist dies beispielsweise /content/communities.
  3. Benennen Sie beispielsweise den Knoten /content/communities zu /content/communities-old um.
  4. Erstellen Sie einen Knoten mit dem richtigen Knotentypen. Beispielsweise /content/communities mit dem Knotentypen sling: Ordner anstelle von nt: Ordner.
  5. Klicken Sie auf Alle Speichern.
  6. Verschieben Sie alle Unterknoten des alten Knotens in den neueren Knoten, der den korrekten Knotentypen enthält. Ziehen Sie beispielsweise alle Unterknoten von /content/communities-old zu /content/communities.
  7. Klicken Sie auf Alle Speichern.

Interne Hinweise

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie