Probleme mit der Einstellung von Java 8 und Java 11 während der Migration auf Java 21 in AEMaaCS

Adobe Experience Manager (AEM) as a Cloud Service unterstützt Java 8 oder Java 11 zur Laufzeit nicht mehr und erfordert eine Migration zu Java 21. Dieses Problem tritt auf, wenn Build-Time-Java-Versionen, Java-Laufzeitversionen, Abhängigkeiten von Drittanbietern oder Migrationszeitpläne Kompatibilitätsprobleme und Unsicherheit über erforderliche Aktionen verursachen. Um das Problem zu beheben, überprüfen Sie die Laufzeit, überprüfen Sie die Kompatibilität und aktualisieren Sie Builds.

Beschreibung description

Umgebung

Adobe Experience Manager as a Cloud Service (AEMaaCS)

Problem/Symptome

  • Hinweise zu Cloud Manager-Builds geben die Verwendung veralteter Java-APIs an.
  • In der Umgebung wird Java 21 zur Laufzeit ausgeführt, während der Build weiterhin Java 11 verwendet.
  • Teams sind sich unsicher, ob Java 11-Builds nach dem Rollout der Java 21-Laufzeitumgebung weiterhin unterstützt werden.
  • Benachrichtigungen des Aktionszentrums verweisen auf Java-Anforderungen zur Einstellung oder Migration.
  • Die Java-Versionen der Laufzeit und der Build-Zeit scheinen in allen Umgebungen inkonsistent zu sein.

Grundursache

Das Problem tritt auf, weil AEM as a Cloud Service Laufzeitumgebungen auf Java 21 aktualisiert, während Kundenprojekte Java 11 weiterhin für Build-Prozesse verwenden können. Die Java-Laufzeitumgebung wird von Adobe verwaltet, während die Java-Build-Zeit von der Projektkonfiguration gesteuert wird. Ein Missverständnis dieser Trennung führt zusammen mit veralteten APIs und Abhängigkeitsinkompatibilitäten zu Migrationsproblemen und Problemen bei der Build-Validierung.

Lösung resolution

Führen Sie die folgenden Schritte aus, um die Verwendung der Java-Laufzeit zu überprüfen und das Programm auf die Kompatibilität mit Java 21 vorzubereiten:

  1. Überprüfen Sie die Java-Laufzeitversion, indem Sie die Developer Console über Cloud Manager öffnen und die gemeldete Java-Version überprüfen.
  2. Protokollieren Sie die Java-Laufzeitversion über eine benutzerdefinierte OSGi-Komponente, indem Sie den Wert von System.getProperty("java.version") aufzeichnen, wenn die Laufzeitversion in der Developer Console nicht sichtbar ist.
  3. Überprüfen Sie die .cloudmanager/java-version-Datei und ermitteln Sie, ob das Projekt mit Java 11, 17 oder 21 erstellt.
  4. Überprüfen Sie die Kompatibilität mit Java 21, indem Sie sicherstellen, dass sich die Umgebung in der AEM-Version 17098 oder höher befindet, das lokale SDK mit Java 21 ausführen, die Anwendung lokal bereitstellen und überprüfen, dass keine Probleme mit dem Laden oder der Abhängigkeit auftreten.
  5. Erstellen Sie eine Entwicklungsverzweigung, die .cloudmanager/java-version auf 21 setzt, und führen Sie eine Entwicklungs-Pipeline aus, um das Anwendungsverhalten unter Java 21 zu überprüfen.
  6. Überprüfen Sie die veraltete API-Nutzung, wenn Benachrichtigungen im Aktionscenter angezeigt werden, und aktualisieren Sie den Code, der auf veraltete oder entfernte Pakete verweist, z. B. entfernte Sling-, Felix- oder Jetty-APIs.
  7. Aktualisieren Sie die Build-Version auf Java 21, indem Sie die .cloudmanager/java-version-Datei mit 21 erstellen oder ändern und eine produktionsfremde Pipeline ausführen, sobald die Kompatibilitätsvalidierung erfolgreich ist.
  8. Überprüfen Sie alle E-Mails zur Java 21-Migrationsbenachrichtigung und aktualisieren Sie nicht unterstützte Bibliotheken oder Abhängigkeiten, die in der Abhängigkeitsanalyse identifiziert wurden. Ersetzen oder aktualisieren Sie beispielsweise nicht unterstützte Versionen von Bibliotheken wie Groovy oder Logback, wenn sie identifiziert wurden.
  9. Überprüfen Sie die Auflösung, indem Sie bestätigen, dass die Laufzeitberichte Java 21 enthalten, Cloud Manager-Builds erfolgreich sind, keine Hinweise mehr zu veralteten Versionen mehr angezeigt werden und die Funktionstests erfolgreich bestanden wurden.

Wann eskalieren

  • Der Zugriff auf Developer Console bleibt nach der Validierung der Berechtigungen unzugänglich.
  • Die Anwendung zeigt nach der Java 21-Validierung weiterhin Abhängigkeitsinkompatibilitäten an.
  • Cloud Manager-Builds schlagen nach der Aktualisierung der Build-Version auf Java 21 fehl.
  • Nicht unterstützte Abhängigkeiten bleiben nach der Migrationsanalyse und -korrektur ungelöst.

Verwandtes Lesen

recommendation-more-help
experience-cloud-kcs-help-kbarticles