解決由自訂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
請依照下列步驟解決問題:
-
檢閱自訂OSGi元件的程式碼,例如存放庫初始設定式和驗證組合。
-
在自訂程式碼中執行任何資料夾建立邏輯之前,請確定所有參考的JCR節點型別(例如: client)都存在。
-
檢查OSGi元件描述元,確認其與編譯類別中的建構函式簽章相符。
-
確認自訂驗證元件(例如
ProviderConfigImpl、ProviderConfigServiceManagerImpl、OAuthManagerImpl)的工廠設定是否正確,且最新部署中未新引進或修改這些設定。 -
驗證健康狀態檢查設定:
-
找到 必要元件(自訂) 健康狀態檢查的OSGi設定(通常是
org.apache.felix.hc.generalchecks.ComponentsCheck的工廠設定,標籤自訂)。 -
確認必要的元件清單包含受影響的自訂元件。
-
使用AEM 觸控式UI (工具
>作業>健康狀態檢查)以檢閱自訂健康狀態檢查的目前狀態和訊息。
-
-
修正已識別的問題後,重新部署受影響的組合,並確認環境達到穩定就緒狀態,且所有健康狀態檢查皆通過。