AEMaaCS パイプラインビルド中の断続的な StackOverflow エラー
StackOverflowError は、クラウドプロバイダー間で依存関係の解決に一貫性がないことが原因で、Adobe Experience Manager as a Cloud Service(AEMaaCS)のビルドフェーズで発生します。 これを修正するには、設定 pom.xml 検証、HTL スクリプトの問題の修正、リポジトリへのアクセスの検査を行い、キャッシュされた依存関係を使用して一時的な回避策を適用します。
説明 description
環境
Adobe Experience Manager as a Cloud Service(AEMaaCS) - Sites
問題/症状
- パイプラインビルドが、次のエラーで断続的に失敗します。スレッド「main」の java.lang.StackOverflowError の例外
- ビルドには成功するものもあれば、必要な依存関係を取り込まずに失敗するものもあります。
- ログは、失敗したビルド中に Maven がリポジトリからの依存関係の取得をスキップすることを示しています。
原因
Cloud Managerは、2 つのクラウドプロバイダーを並行して使用してクライアントコードを構築し、一方が完了すると一方を停止します。 キャッシュを使用するプロバイダーは 1 つだけなので、一部のビルドは依存関係を再利用し、他のビルドは依存関係を取得する必要があります。 依存関係がなく、再帰的なロジック(HTL スクリプト内など)がトリガーされる場合は、StackOverflowError が発生する可能性があります。 これは通常、顧客側での依存関係の管理方法に起因します。
解決策 resolution
AEM QA ビルド中の StackOverflow エラーを修正するには、次の手順に従います。
- サブモジュール間のすべての
pom.xmlファイルを確認して、依存関係の設定を検証します。 Maven リポジトリの設定が正しく、必要な依存関係(gs4tr-globallink-adaptors-aem.all)が適切に定義され、アクセス可能であることを確認します。 依存関係を使用できない場合は、ローカルライブラリフォルダーに追加し、systemPathスコープを使用してpom.xmlで参照します。 - Maven
settings.xmlのプライベートリポジトリにアクセスするための資格情報を設定し、必要な環境変数(MAVEN_GLOBAL_LINK_PASSWORDなど)を正しく設定して、リポジトリのアクセスを調べます。 - Maven
settings.xmlファイルでプライベートリポジトリの資格情報を設定して、リポジトリへのアクセスを検査します。 必要な環境変数(MAVEN_GLOBAL_LINK_PASSWORDなど)が正しく設定されていることを確認します。 - 指定したリポジトリから依存関係を取得する際に、パイプラインログで依存関係の欠落、リポジトリ URL の誤り、404 エラーがないかどうかを確認します。
- 一時的な回避策として、失敗したパイプラインを再試行します。 正常に実行されると、恒久的な修正が実装されるまで、キャッシュされた依存関係を使用する可能性があります。
関連資料
- AEM as a Cloud Service ユーザーガイドの パイプラインの設定 。
- HTL の基本を学ぶ AEM ドキュメント。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f