カスタム OSGi コンポーネントエラーによるAEM Cloud Manager デプロイメントエラーの解決
この記事では、カスタム OSGi コンポーネントのインスタンス化に失敗し、不安定な環境と不明確なログメッセージが発生した場合に、Adobe Experience Manager(AEM)Cloud Managerでデプロイメントパイプラインのエラーをトラブルシューティングおよび解決する方法について説明します。
説明 description
環境
Adobe Experience Manager(AEM)as a Cloud Service、Cloud Manager パイプライン経由でデプロイ
症状
-
デプロイメントパイプラインが失敗し、新しいデプロイメントが安定した状態に達しない。
-
アプリケーションインスタンスは頻繁に再起動し、準備ができていません。
-
必須パス check (例:
/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 ( ツール を使用
>操作>ヘルスチェック )を使用して、カスタムヘルスチェックの現在のステータスとメッセージを確認します。
-
-
特定された問題を修正した後、影響を受けるバンドルを再デプロイし、環境が安定した準備状態に達し、すべてのヘルスチェックが合格することを確認します。