TCP Locator fails to start due to Java version mismatch in AEM

When installing Adobe Experience Manager (AEM) Forms, v6.5 SP23 in a clustered environment, the TCP (Transmission Control Protocol) Locator fails to start because it requires JDK (Java Development Kit) 17 or higher after the SP22 Hotfix, whereas other components, such as JBoss and AEM Forms, use JDK 11. To resolve the issue, set JAVA_HOME to JDK 17 before starting TCP Locator.

Description description

Environment

  • Product: Adobe Experience Manager (AEM) - Forms, v6.5 SP23
  • Instance: Clustered environment

Issue/Symptoms

  • Starting the TCP Locator using gfsh.bat fails in a clustered environment.

  • The error indicates that a class was compiled by a newer Java Runtime (class file version 61.0), but only up to version 55.0 is recognized.

  • Running java -version confirms that JDK 11 is being used instead of JDK 17.

  • The following error appears during startup:

    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)
    

Resolution resolution

Follow these steps to resolve the issue:

  1. Install JDK 17 in your system if not already installed.
  2. Before starting the TCP Locator, set JAVA_HOME to the JDK 17 installation directory.
  3. Start the TCP Locator process.
  4. After starting the TCP Locator, reset JAVA_HOME to JDK 11 for your application server (for example, JBoss) and AEM Forms.
  5. Start the application server and AEM Forms using their required Java versions.
  6. Verify that TCP Locator and all services start successfully without Java compatibility errors.

Notes:

  • JDK 17 is required for TCP Locator after SP22 Hotfix in clustered environments due to Spring Core vulnerability fixes.
  • Each component must start with its compatible Java version by updating JAVA_HOME at runtime.

Supported Platforms for AEM Forms on JEE in the AEM user guide

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