由於AEM中的Java版本不符,TCP定位器無法啟動
在叢集環境中安裝Adobe Experience Manager (AEM) Forms v6.5 SP23時,TCP (傳輸控制通訊協定)定位器無法啟動,因為必須在SP22 Hotfix之後安裝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 Runtime (類別檔案版本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
請依照下列步驟解決問題:
- 請在系統中安裝JDK 17 (如果尚未安裝)。
- 在啟動TCP定位器之前,請將
JAVA_HOME設定為 JDK 17 安裝目錄。 - 啟動TCP Locator程式。
- 啟動TCP定位器後,將應用程式伺服器(例如JBoss)和AEM Forms的
JAVA_HOME重設為JDK 11。 - 使用必要的Java版本啟動應用程式伺服器和AEM Forms。
- 確認TCP Locator和所有服務啟動成功,且沒有Java相容性錯誤。
附註:
- 在叢集環境中,由於Spring Core弱點修正,SP22 Hotfix之後的TCP Locator需要JDK 17。
- 每個元件在執行階段都必須透過更新
JAVA_HOME來以相容的Java版本開始。
相關閱讀
AEM使用手冊中的AEM Forms on JEE的支援平台
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f