在AEMaaCS中移轉至Java 21期間的Java 8和Java 11淘汰問題

Adobe Experience Manager (AEM) as a Cloud Service在執行階段不再支援Java 8或Java 11,並需要移轉至Java 21。 當建置時間Java版本、執行階段Java版本、協力廠商相依性或移轉時間表造成相容性顧慮和對所需動作的不確定性時,就會發生此問題。 若要解決此問題,請驗證執行階段、驗證相容性並更新組建。

說明 description

環境

Adobe Experience Manager as a Cloud Service (AEMaaCS)

問題/症狀

  • Cloud Manager建置注意事項會指示您使用過時的Java API。
  • 環境在執行階段執行Java 21,而組建仍使用Java 11。
  • 團隊不確定在Java 21執行階段轉出後,Java 11組建是否仍受支援。
  • 動作中心通知會參考Java淘汰或移轉需求。
  • 不同環境的執行階段和建置時間Java版本似乎不一致。

根本原因

發生此問題的原因是AEM as a Cloud Service將執行階段環境升級為Java 21,而客戶專案可能會繼續使用Java 11進行建置流程。 執行階段Java由Adobe管理,而建置時間Java則由專案設定控制。 誤解此分隔,以及過時的API和相依性不相容,會導致移轉關注事項和組建驗證問題。

解決方法 resolution

請依照下列步驟驗證Java執行階段用法,並準備應用程式以與Java 21相容:

  1. 從Cloud Manager開啟Developer Console並檢閱回報的Java版本,以驗證執行階段Java版本。
  2. 在Developer Console中看不到執行階段版本時,透過自訂OSGi元件記錄System.getProperty("java.version")的值,以記錄執行階段Java版本。
  3. 檢閱.cloudmanager/java-version檔案,並判斷專案是使用Java 11、17或21建置。
  4. 透過確保環境在AEM版本17098或更新版本上、使用Java 21執行本機SDK、在本機部署應用程式,以及驗證不會發生類別載入或相依性問題來驗證Java 21相容性。
  5. 建立將.cloudmanager/java-version設為21的開發分支,並執行開發管道以驗證Java 21下的應用程式行為。
  6. 當動作中心通知出現時,檢閱已過時的API使用方式,並更新參考已過時或已移除套件(例如已移除的Sling、Felix或Jetty API)的程式碼。
  7. 透過建立或修改包含21的.cloudmanager/java-version檔案,並在相容性驗證成功後執行非生產管道,將組建版本更新為Java 21。
  8. 檢閱任何Java 21移轉通知電子郵件,並更新相依性分析中識別的不支援的程式庫或相依性。 例如,在識別後取代或升級不支援的程式庫版本,例如Groovy或Logback。
  9. 透過確認執行階段報告Java 21、Cloud Manager建置成功、不再出現取代通知,以及功能測試成功通過來驗證解決方案。

何時上報

  • 驗證許可權後,Developer Console仍無法存取。
  • 在Java 21驗證後,應用程式會繼續顯示相依性不相容。
  • 將組建版本更新為Java 21後,Cloud Manager組建會失敗。
  • 移轉分析和修正後,不受支援的相依性仍未解決。

相關閱讀

recommendation-more-help
experience-cloud-kcs-help-kbarticles