Beheben von Bereitstellungsfehlern in AEM as a Cloud Service
Dieser Artikel behandelt Bereitstellungsfehler in Adobe Experience Manager (AEM) as a Cloud Service, die durch Anpassungen im Repository-Initialisierungsskript verursacht werden. Beim Bereitstellen einer Funktionsverzweigung in der Entwicklungsphase können diese Fehler eine erfolgreiche Bereitstellung behindern und sind nicht einfach in den Protokollen sichtbar. Das Analysieren von Debug-Protokollen behebt das Problem.
Beschreibung description
Umgebung
- Produkt: Adobe Experience Manager (AEM) as a Cloud Service - Sites
- stage: Development
- Einschränkungen Direkte Änderungen über die Felix-Konsole sind eingeschränkt.
Problem/Symptome
-
Die Bereitstellung einer Funktionsverzweigung schlägt aufgrund von Repository-Initialisierungsfehlern fehl.
-
Protokolle zeigen Meldungen an wie:
code language-none Exception in a SlingRepositoryInitializer, SlingRepository service registration aborted javax.jcr.RepositoryException: Applying repoinit operation failed despite retry; set loglevel to DEBUG to see all exceptions. Last exception message from "Configuration PID 310, script[ 0] " was: CreatePath execution failed at cq(sling:Folder): javax.jcr.nodetype.ConstraintViolationException: org.apache.jackrabbit.oak.spi.state.ReadyOnlyBuilderException: This builder is read-only... -
Fehler weisen auf Versuche hin, schreibgeschützte Knoten oder unveränderliche Teile des Repositorys zu ändern.
Auflösung resolution
Gehen Sie wie folgt vor, um das Problem zu beheben:
-
Setzen Sie die Protokollebene auf
DEBUGfür Repo-Init-Vorgänge, um detaillierte Ausnahmeinformationen während der Repository-Initialisierung zu erhalten. Da der direkte Zugriff über die Felix-Konsole eingeschränkt ist, sollten Sie eine benutzerdefinierte Protokollierungskonfiguration in Ihrem Projekt verwenden. -
Erstellen Sie eine OSGi-Konfigurationsdatei unter dem
/apps/<your-project>/config/Ordner Ihres Projekts, z. B.com.adobe.granite.logging.impl.LogManagerFactory.config.-
Fügen Sie die folgenden Eigenschaften in diese Datei ein:
code language-none loggers=[ "org.apache.sling.jcr.repoinit.impl.RepositoryInitializerFactory"] org.apache.sling.jcr.repoinit.impl.RepositoryInitializerFactory.log.level=DEBUG
-
-
Stellen Sie die aktualisierte Konfiguration über Cloud Manager bereit und überprüfen Sie, ob nach der Bereitstellung detaillierte Debug-Protokolle für Repo-Init-Vorgänge angezeigt werden.
-
Überprüfen Sie die Debug-Protokolle auf zusätzlichen Kontext über Fehler während der Repository-Initialisierung und suchen Sie nach Hinweisen auf nicht autorisierte Änderungen oder Versuche, schreibgeschützte Knoten zu ändern.
-
Stellen Sie sicher, dass Ihr Repo-Init-Skript nicht versucht, Knoten in unveränderlichen Teilen des Repositorys (z. B. Systempfaden) zu erstellen oder zu ändern.
-
Entfernen oder passen Sie alle
CreatePathBefehle an, die auf Knoten abzielen, die alscq(sling:Folder)definiert sind, wenn sie sich in schreibgeschützten Bereichen befinden. Wenn neue Knoten oder Strukturen hinzugefügt werden müssen, packen Sie diese Änderungen separat mithilfe von Inhaltspaketen, die in zulässigen Pfaden bereitgestellt werden.
Die folgenden Schritte helfen Ihnen, Bereitstellungsfehler zu identifizieren und zu beheben, während Sie die Systempfadbeschränkungen von AEM beachten.
Verwandtes Lesen
Debugging von Build und Bereitstellungen von AEM as a Cloud Service