由於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

請依照下列步驟解決問題:

  1. 請在系統中安裝JDK 17 (如果尚未安裝)。
  2. 在啟動TCP定位器之前,請將JAVA_HOME設定為​ JDK 17 ​安裝目錄。
  3. 啟動TCP Locator程式。
  4. 啟動TCP定位器後,將應用程式伺服器(例如JBoss)和AEM Forms的JAVA_HOME重設為​JDK 11
  5. 使用必要的Java版本啟動應用程式伺服器和AEM Forms。
  6. 確認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