Le déplacement de composant échoue dans Adobe Experience Manager lorsque des conteneurs volumineux déclenchent des réponses JSON fractionnées
Cet article explique pourquoi le déplacement de composants dans une page dans Adobe Experience Manager (AEM) échoue lorsque la page contient un grand nombre de nœuds de contenu et fournit une solution temporaire.
Description description
Lorsque vous utilisez AEM, le déplacement d’un composant dans une page qui contient un grand nombre de nœuds de contenu ne fonctionne pas comme prévu. Ce problème se produit lorsque le nombre de nœuds dans un conteneur dépasse la limite configurée pour les résultats JSON dans le servlet GET Apache Sling (DefaultGetServlet). Par défaut, cette limite est définie sur 1 000 nœuds. Lorsque la limite est dépassée, une requête au point d’entrée .infinity.json du conteneur renvoie une réponse HTTP 300 avec des références à plusieurs fichiers JSON partagés au lieu d’une seule réponse JSON. L’interface utilisateur de création d’AEM ne gère pas correctement cette réponse partagée, ce qui entraîne l’échec silencieux de l’opération de déplacement du composant.
Environnement
- Adobe Experience Manager (toutes versions)
Symptômes
- Toute tentative de déplacement d’un composant dans une page contenant un grand nombre de nœuds est sans effet.
- La requête de
/container.infinity.jsonrenvoie une réponse HTTP 300 avec des références à plusieurs fichiers JSON fractionnés, tels que : /content/.../jcr:content/root/container.2.json/content/.../jcr:content/root/container.1.json/content/.../jcr:content/root/container.0.json
Cause
Le DefaultGetServlet applique une limite au nombre de nœuds renvoyés dans une seule réponse JSON. Lorsque cette limite est dépassée, le servlet renvoie une réponse partagée, qui n’est actuellement pas gérée par le workflow de création d’AEM lors des opérations de déplacement de composant.
Résolution resolution
Suivez les étapes ci-dessous pour résoudre le problème :
- Connectez-vous à la Configuration de la console web AEM à l’adresse
/system/console/configMgr. - Recherchez la configuration du servlet de
GETApache Sling (org.apache.sling.servlets.get.DefaultGetServlet). - Augmentez la valeur de
json.maximumresultssur un nombre supérieur au nombre total de nœuds dans votre conteneur le plus volumineux (par exemple : augmentez de 1 000 à 2 000). - Enregistrez la configuration.
- Réessayez l’opération de déplacement du composant pour vérifier si elle s’est maintenant terminée correctement.
- Surveillez les futures notes de mise à jour d’AEM Sites pour obtenir des mises à jour concernant un correctif permanent pour ce problème.