Impossibile avviare il localizzatore TCP a causa di una mancata corrispondenza della versione Java in AEM
Durante l’installazione di Adobe Experience Manager (AEM) Forms v6.5 SP23 in un ambiente cluster, il localizzatore TCP (Transmission Control Protocol) non si avvia perché richiede JDK (Java Development Kit) 17 o versione successiva dopo l’hotfix SP22, mentre altri componenti, come JBoss e AEM Forms, utilizzano JDK 11. Per risolvere il problema, impostare JAVA_HOME su JDK 17 prima di avviare TCP Locator.
Descrizione description
Ambiente
- Prodotto: Adobe Experience Manager (AEM) - Forms, v6.5 SP23
- Istanza: ambiente cluster
Problema/Sintomi
-
L'avvio del localizzatore TCP tramite
gfsh.batnon riesce in un ambiente cluster. -
L’errore indica che una classe è stata compilata da un Java Runtime più recente (file di classe versione 61.0), ma viene riconosciuta solo la versione 55.0.
-
L'esecuzione di
java -versionconferma l'utilizzo di JDK 11 invece di JDK 17. -
Durante l'avvio viene visualizzato il seguente errore:
code language-none Exception in thread "main" java.lang.UnsupportedClassVersionError: org/springframework/util/Assert has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0 at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1021) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) at org.springframework.shell.support.logging.HandlerUtils.getLogger(HandlerUtils.java:49) at org.springframework.shell.core.SimpleParser.<clinit>(SimpleParser.java:54) at org.apache.geode.management.internal.cli.Launcher.<clinit>(Launcher.java:84)
Risoluzione resolution
Per risolvere il problema, segui la procedura riportata di seguito:
- Installare JDK 17 nel sistema, se non è già installato.
- Prima di avviare il localizzatore TCP, impostare
JAVA_HOMEsulla directory di installazione di JDK 17. - Avvia il processo di localizzazione TCP.
- Dopo aver avviato il localizzatore TCP, reimpostare
JAVA_HOMEsu JDK 11 per il server applicazioni (ad esempio, JBoss) e AEM Forms. - Avvia il server applicazioni e AEM Forms utilizzando le versioni Java richieste.
- Verificare che il servizio TCP Locator e tutti i servizi vengano avviati senza errori di compatibilità Java.
Note:
- JDK 17 è necessario per il localizzatore TCP dopo l’hotfix SP22 negli ambienti cluster a causa di correzioni di vulnerabilità Spring Core.
- Ogni componente deve iniziare con la versione Java compatibile aggiornando
JAVA_HOMEin fase di esecuzione.
Lettura correlata
Piattaforme supportate per AEM Forms su JEE nella guida utente di AEM