Beheben von AEM Cloud Manager-Bereitstellungsfehlern, die durch benutzerdefinierte OSGi-Komponentenfehler verursacht wurden
In diesem Artikel wird beschrieben, wie Sie Fehler bei der Bereitstellungs-Pipeline in Adobe Experience Manager (AEM) Cloud Manager beheben können, wenn benutzerdefinierte OSGi-Komponenten nicht instanziiert werden können, was zu instabilen Umgebungen und unklaren Protokollmeldungen führt.
Beschreibung description
Umgebung
Adobe Experience Manager (AEM) as a Cloud Service, bereitgestellt über Cloud Manager-Pipelines
Symptome
-
Bereitstellungs-Pipelines schlagen fehl und neue Bereitstellungen erreichen keinen stabilen Status.
-
Anwendungsinstanzen werden häufig neu gestartet und sind nicht bereit.
-
Konsistenzprüfungen schlagen fehl, einschließlich der Prüfung erforderlicher Pfade (z. B.:
/libs/granite/security/currentuser.jsongibt HTTP 503 zurück) und Prüfung erforderlicher Komponenten (benutzerdefiniert) meldet nicht erfüllte Komponenten. -
In Protokollen werden benutzerdefinierte OSGi-Komponenten angezeigt, die nicht instanziiert werden konnten, mit Fehlern wie:
- javax.jcr.nodetype.NoSuchNodeTypeException: Knotentyp Client existiert nicht
- Konstruktor mit 0 Argumenten nicht gefunden für benutzerdefinierte Authentifizierungs- oder Repository-Initialisierungskomponenten
Ursache
Benutzerdefinierte OSGi-Komponenten können aufgrund von nicht übereinstimmenden Komponentendeskriptoren, fehlenden JCR-Knotentypen oder falschen Werkskonfigurationen nicht instanziiert werden. Dies führt zu grundlegenden Service-Fehlern und verhindert eine erfolgreiche Bereitstellung.
Lösung resolution
Gehen Sie wie folgt vor, um das Problem zu beheben:
-
Überprüfen Sie den Code für benutzerdefinierte OSGi-Komponenten wie Repository-Initialisierer und Authentifizierungs-Bundles.
-
Stellen Sie sicher, dass alle referenzierten JCR-Knotentypen (z. B.: client) vorhanden sind, bevor eine Ordnererstellungslogik in Ihrem benutzerdefinierten Code ausgeführt wird.
-
Überprüfen Sie die OSGi-Komponentendeskriptoren, um sicherzustellen, dass sie mit den Konstruktorsignaturen in den kompilierten Klassen übereinstimmen.
-
Vergewissern Sie sich, dass die Werkskonfigurationen für benutzerdefinierte Authentifizierungskomponenten (z. B.
ProviderConfigImpl,ProviderConfigServiceManagerImpl,OAuthManagerImpl) korrekt sind und in der neuesten Bereitstellung nicht neu eingeführt oder geändert wurden. -
Überprüfen Sie die Konfiguration der Konsistenzprüfung:
-
Suchen Sie die OSGi-Konfiguration für die Konsistenzprüfung Erforderliche Komponenten (benutzerdefiniert (in der Regel eine Werkskonfiguration für
org.apache.felix.hc.generalchecks.ComponentsCheck, getaggt benutzerdefiniert). -
Vergewissern Sie sich, dass die erforderliche Komponentenliste die betroffenen benutzerdefinierten Komponenten enthält.
-
Verwenden der AEM Touch-Benutzeroberfläche (Tools
>Vorgänge>Konsistenzprüfung), um den aktuellen Status und die Meldungen für die benutzerdefinierte Konsistenzprüfung zu überprüfen.
-
-
Stellen Sie nach der Behebung der festgestellten Probleme die betroffenen Bundles erneut bereit und überprüfen Sie, ob die Umgebung einen stabilen Bereitschaftsstatus erreicht und alle Konsistenzprüfungen erfolgreich sind.