由于AEM中的Java版本不匹配,TCP定位器无法启动

在集群环境中安装Adobe Experience Manager (AEM) Forms v6.5 SP23时,TCP (传输控制协议)定位器无法启动,因为它要求SP22修补程序之后安装JDK (Java开发工具包) 17或更高版本,而其他组件(如JBoss和AEM Forms)则使用JDK 11。 要解决此问题,请在启动TCP定位器之前将JAVA_HOME设置为​JDK 17

描述 description

环境

  • 产品: Adobe Experience Manager (AEM) - Forms 6.5 SP23版
  • 实例:群集环境

问题/症状

  • 在群集环境中使用gfsh.bat启动TCP定位器失败。

  • 该错误表示类是由较新的Java运行时(类文件版本61.0)编译的,但只能识别最高版本55.0的类。

  • 运行java -version可确认正在使用JDK 11而不是JDK 17。

  • 启动期间出现以下错误:

    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

请按照以下步骤解决问题:

  1. 在系统中安装JDK 17(如果尚未安装)。
  2. 在启动TCP定位程序之前,将JAVA_HOME设置为​ JDK 17 ​安装目录。
  3. 启动TCP定位器进程。
  4. 启动TCP定位器后,将应用程序服务器(例如,JBoss)和AEM Forms的JAVA_HOME重置为​JDK 11
  5. 使用所需的Java版本启动应用程序服务器和AEM Forms。
  6. 验证TCP定位器和所有服务是否成功启动且没有Java兼容性错误。

注意:

  • 由于Spring Core漏洞修复,群集环境中的SP22修补程序之后的TCP定位器需要JDK 17。
  • 每个组件必须通过在运行时更新JAVA_HOME以与其兼容的Java版本开始。

相关阅读

AEM用户指南中的AEM Forms on JEE的支持平台

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