Falha ao iniciar o localizador de TCP devido à incompatibilidade de versões do Java no AEM

Ao instalar o Adobe Experience Manager (AEM) Forms, v6.5 SP23 em um ambiente em cluster, o localizador TCP (Transmission Control Protocol) falha ao iniciar porque requer o JDK (Java Development Kit) 17 ou superior após o Hotfix do SP22, enquanto outros componentes, como o JBoss e o AEM Forms, usam o JDK 11. Para resolver o problema, defina JAVA_HOME como JDK 17 antes de iniciar o Localizador TCP.

Descrição description

Ambiente

  • Produto: Adobe Experience Manager (AEM) - Forms, v6.5 SP23
  • Instância: ambiente clusterizado

Problema/Sintomas

  • Falha ao iniciar o Localizador TCP usando gfsh.bat em um ambiente clusterizado.

  • O erro indica que uma classe foi compilada por um Java Runtime mais recente (arquivo de classe versão 61.0), mas somente até a versão 55.0 é reconhecida.

  • A execução de java -version confirma que o JDK 11 está sendo usado em vez do JDK 17.

  • O seguinte erro é exibido durante a inicialização:

    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)
    

Resolução resolution

Siga estas etapas para resolver o problema:

  1. Instale o JDK 17 no sistema se ainda não estiver instalado.
  2. Antes de iniciar o Localizador TCP, defina JAVA_HOME para o diretório de instalação do JDK 17.
  3. Inicie o processo do localizador de TCP.
  4. Depois de iniciar o Localizador de TCP, redefina o JAVA_HOME como JDK 11 para o servidor de aplicativos (por exemplo, JBoss) e o AEM Forms.
  5. Inicie o servidor de aplicativos e o AEM Forms usando suas versões do Java necessárias.
  6. Verifique se o Localizador TCP e todos os serviços foram iniciados com êxito sem erros de compatibilidade com Java.

Notas:

  • O JDK 17 é necessário para o localizador TCP após o SP22 Hotfix em ambientes clusterizados devido a correções de vulnerabilidade do Spring Core.
  • Cada componente deve começar com sua versão compatível do Java, atualizando JAVA_HOME no tempo de execução.

Leitura relacionada

Plataformas com suporte para o AEM Forms no JEE no guia do usuário do AEM

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