Beheben von jcr:mixinTypes ValueFormatException in AEM Builds
Pipeline-Builds in Adobe Experience Manager (AEM) as a Cloud Service schlagen aufgrund eines veralteten org.apache.sling.jcr.repoinit-Bundles fehl. Dieses Problem tritt auf, wenn ein repoInit fälschlicherweise einer JCR-Eigenschaft mit mehreren Werten einen einzelnen Wert zuweist und so eine „ValueFormatException auslöst. In diesem Artikel wird die Grundursache erläutert und Schritte zur Behebung des Problems beschrieben, indem das Paket aktualisiert und das Skript korrigiert wird.
Beschreibung description
Umgebung
- Adobe Experience Manager (AEM) as a Cloud Service - Sites
- Die aktuelle Version
org.apache.sling.jcr.repoinitBundles ist 1.1.38. Version 1.154 oder höher ist erforderlich. - Pipeline-Fehler treten gelegentlich während der Bereitstellung auf. Bereitstellungen von Entwicklungsumgebungen sind in der Regel erfolgreich.
Problem/Symptome
Der Pipeline-Build schlägt mit dem folgenden Fehler fehl:
Ausnahme In einem SlingRepositoryInitializer wurde die Registrierung des SlingRepository-Dienstes von javax.jcr.RepositoryException: Anwenden des repoinit-Vorgangs ist trotz Wiederholung fehlgeschlagen; setzen Sie die Protokollebene auf DEBUG, um alle Ausnahmen anzuzeigen. Die letzte Ausnahmemeldung von „Configuration PID 313, script[ 0] " war: Eigenschaften können nicht für Pfad [ /conf/somepath] festgelegt werden: javax.jcr.ValueFormatException: Mehrwertige Eigenschaft kann nicht mit einem Wert versehen werden: jcr:mixinTypes = mix:lockable
Ursache
Das repoInit-Skript versucht, Folgendes zuzuweisen jcr:mixinTypes als einzelner Wert statt als Array mit mehreren Werten. Dies führt zu einer nicht behandelten ValueFormatException, was dazu führt, dass die Pipeline-Ausführung fehlschlägt.
Auflösung resolution
So beheben Sie dieses Problem:
- Ändern Sie das RepoInit-Skript so, dass
jcr:mixinTypesals Array mit mehreren Werten geschrieben wird, oder entfernen Sie die Zeile, wenn die Mixins bereits vorhanden sind. - Aktualisieren Sie das
org.apache.sling.jcr.repoinit-Bundle auf Version 1.154 oder höher, die eine Korrektur für dieses Problem enthält. Dieses Update kann in zukünftigen Foundation-Versionen enthalten sein ( Sie die Verfügbarkeit . - Stellen Sie sicher, dass RepoInit-Skripte Arrays für Eigenschaften mit mehreren Werten verwenden, bis das aktualisierte Bundle verfügbar ist.
Durch die Implementierung dieser Schritte können Pipeline-Build-Fehler, die durch Repository-Initialisierungsfehler verursacht wurden, effektiv behoben werden.