El localizador TCP no se puede iniciar debido a la discrepancia de versiones de Java en AEM

Al instalar Adobe Experience Manager (AEM) Forms, v6.5 SP23 en un entorno agrupado, el localizador de TCP (Transmission Control Protocol) no se inicia porque requiere JDK (Java Development Kit) 17 o superior después de la revisión SP22, mientras que otros componentes, como JBoss y AEM Forms, utilizan JDK 11. Para resolver el problema, establezca JAVA_HOME en JDK 17 antes de iniciar el localizador TCP.

Descripción description

Entorno

  • Producto: Adobe Experience Manager (AEM) - Forms, versión 6.5 SP23
  • Instancia: Entorno en clúster

Problema/Síntomas

  • Error al iniciar el localizador TCP con gfsh.bat en un entorno agrupado.

  • El error indica que una clase fue compilada por un Java Runtime más reciente (archivo de clase versión 61.0), pero solo se reconoce hasta la versión 55.0.

  • La ejecución de java -version confirma que se está utilizando JDK 11 en lugar de JDK 17.

  • El siguiente error aparece durante el inicio:

    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)
    

Resolución resolution

Siga estos pasos para resolver el problema:

  1. Instale el JDK 17 en su sistema si no está instalado.
  2. Antes de iniciar el localizador TCP, establezca JAVA_HOME en el directorio de instalación de JDK 17.
  3. Inicie el proceso Localizador TCP.
  4. Después de iniciar el localizador TCP, restablezca JAVA_HOME a JDK 11 para su servidor de aplicaciones (por ejemplo, JBoss) y AEM Forms.
  5. Inicie el servidor de aplicaciones y AEM Forms con las versiones de Java que sean necesarias.
  6. Compruebe que el localizador TCP y todos los servicios se inician correctamente sin errores de compatibilidad con Java.

Notas:

  • Se requiere JDK 17 para el localizador TCP después de la revisión SP22 en entornos agrupados debido a las correcciones de vulnerabilidades de Spring Core.
  • Cada componente debe iniciarse con su versión de Java compatible al actualizar JAVA_HOME en tiempo de ejecución.

Lectura relacionada

Plataformas compatibles con AEM Forms en JEE en la guía del usuario de AEM

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