大きなコンテナトリガーがJSONを分割すると、Adobe Experience Managerでコンポーネントの移動が失敗する
この記事では、Adobe Experience Manager(AEM)でページ内のコンポーネントを移動する際に、ページに多数のコンテンツノードが含まれている場合にエラーが発生し、一時的な回避策が提供される理由を説明します。
説明 description
AEMを使用する場合、多数のコンテンツノードを含むページ内のコンポーネントを移動すると、期待どおりに動作しません。 この問題は、コンテナ内のノード数がJSON用に設定された制限を超えると、Apache Sling GET サーブレット (DefaultGetServlet)で発生します。 デフォルトでは、この制限は1000 ノードに設定されています。 制限を超えると、コンテナの.infinity.json エンドポイントへのリクエストは、単一のJSON応答ではなく、複数の分割JSON ファイルへの参照を含む HTTP 300 応答を返します。 AEM オーサリング UIでは、このスプリットレスポンスが正しく処理されないため、コンポーネントの移動操作がサイレントで失敗します。
環境
- Adobe Experience Manager(すべてのバージョン)
症状
- 多数のノードを含むページ内でコンポーネントを移動しようとすると、何の効果もありません。
/container.infinity.jsonへのリクエストは、複数の分割JSON ファイルへの参照を含む HTTP 300 応答を返します。例:/content/.../jcr:content/root/container.2.json/content/.../jcr:content/root/container.1.json/content/.../jcr:content/root/container.0.json
原因
DefaultGetServletでは、1つのJSON応答で返されるノードの数に制限が適用されます。 この制限を超えると、サーブレットはスプリットレスポンスを返しますが、これは現在、コンポーネントの移動操作中にAEM オーサリングワークフローで処理されません。
解決策 resolution
問題を解決するには、次の手順に従います。
/system/console/configMgrでAEM Web コンソール設定にログインします。- Apache Sling
GETサーブレット (org.apache.sling.servlets.get.DefaultGetServlet)の設定を探します。 json.maximumresultsの値を、最大コンテナ内のノードの合計よりも大きい数に増やします(例:1000から2000に増やします)。- 設定を保存します。
- コンポーネントの移動操作を再試行して、正常に完了したかどうかを確認します。
- この問題の恒久的な修正に関するアップデートについては、今後のAEM Sites リリースノートを参照してください。
recommendation-more-help
experience-cloud-kcs-help-kbarticles