解決由自訂OSGi元件錯誤所導致的AEM Cloud Manager部署失敗

本文介紹當自訂OSGi元件無法具現化,導致環境不穩定和記錄訊息不明確時,如何在Adobe Experience Manager (AEM) Cloud Manager中疑難排解和解決部署管道故障。

說明 description

環境

Adobe Experience Manager (AEM) as a Cloud Service,透過Cloud Manager管道部署

症狀

  • 部署管道失敗,且新部署未達到穩定狀態。

  • 應用程式執行個體經常重新啟動,而且尚未準備就緒。

  • 健康情況檢查失敗,包括必要的路徑檢查 (例如: /libs/granite/security/currentuser.json傳回​HTTP 503)和 必要的元件(自訂) 檢查報告不滿意的元件。

  • 記錄檔顯示無法具現化的自訂OSGi元件,錯誤如下:

    • javax.jcr.nodetype.NoSuchNodeTypeException:節點型別使用者端不存在
    • 找不到自訂驗證或儲存庫初始設定式元件之具有0引數的建構函式

原因

自訂OSGi元件無法具現化,因為元件描述元不相符、缺少JCR節點型別或工廠設定不正確。 這會導致基本服務失敗,並阻礙成功部署。

解決方法 resolution

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

  1. 檢閱自訂OSGi元件的程式碼,例如存放庫初始設定式和驗證組合。

  2. 在自訂程式碼中執行任何資料夾建立邏輯之前,請確定所有參考的JCR節點型別(例如: client)都存在。

  3. 檢查OSGi元件描述元,確認其與編譯類別中的建構函式簽章相符。

  4. 確認自訂驗證元件(例如ProviderConfigImpl、ProviderConfigServiceManagerImpl、OAuthManagerImpl)的工廠設定是否正確,且最新部署中未新引進或修改這些設定。

  5. 驗證健康狀態檢查設定:

    • 找到 必要元件(自訂) 健康狀態檢查的OSGi設定(通常是org.apache.felix.hc.generalchecks.ComponentsCheck的工廠設定,標籤​自訂)。

    • 確認必要的元件清單包含受影響的自訂元件。

    • 使用AEM 觸控式UI (工具 > 作業 > 健康狀態檢查)以檢閱自訂健康狀態檢查的目前狀態和訊息。

  6. 修正已識別的問題後,重新部署受影響的組合,並確認環境達到穩定就緒狀態,且所有健康狀態檢查皆通過。

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