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.batfails 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 -versionconfirms 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:
- Install JDK 17 in your system if not already installed.
- Before starting the TCP Locator, set
JAVA_HOMEto the JDK 17 installation directory. - Start the TCP Locator process.
- After starting the TCP Locator, reset
JAVA_HOMEto JDK 11 for your application server (for example, JBoss) and AEM Forms. - Start the application server and AEM Forms using their required Java versions.
- 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_HOMEat runtime.
Related reading
Supported Platforms for AEM Forms on JEE in the AEM user guide