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.bat non 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 -version conferma 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:

  1. Installare JDK 17 nel sistema, se non è già installato.
  2. Prima di avviare il localizzatore TCP, impostare JAVA_HOME sulla directory di installazione di JDK 17.
  3. Avvia il processo di localizzazione TCP.
  4. Dopo aver avviato il localizzatore TCP, reimpostare JAVA_HOME su JDK 11 per il server applicazioni (ad esempio, JBoss) e AEM Forms.
  5. Avvia il server applicazioni e AEM Forms utilizzando le versioni Java richieste.
  6. 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_HOME in fase di esecuzione.

Lettura correlata

Piattaforme supportate per AEM Forms su JEE nella guida utente di AEM

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f