El movimiento de componentes falla en Adobe Experience Manager cuando los contenedores grandes dividen en déclencheur las respuestas JSON
En este artículo se explica por qué al mover componentes dentro de una página en Adobe Experience Manager (AEM) se produce un error cuando la página contiene un gran número de nodos de contenido y se proporciona una solución temporal.
Descripción description
Al utilizar AEM, mover un componente dentro de una página que contiene un gran número de nodos de contenido no funciona como se esperaba. Este problema se produce cuando el número de nodos de un contenedor supera el límite configurado para los resultados de JSON en el servlet Apache Sling GET (DefaultGetServlet). De forma predeterminada, este límite se establece en 1000 nodos. Cuando se supera el límite, una solicitud al extremo .infinity.json del contenedor devuelve una respuesta HTTP 300 con referencias a varios archivos JSON divididos en lugar de una sola respuesta JSON. La IU de creación de AEM no gestiona esta respuesta dividida correctamente, lo que provoca que la operación de movimiento del componente falle de forma silenciosa.
Entorno
- Adobe Experience Manager (todas las versiones)
Síntomas
- No tiene ningún efecto intentar mover un componente dentro de una página que contiene un gran número de nodos.
- La solicitud a
/container.infinity.jsondevuelve una respuesta HTTP 300 con referencias a varios archivos JSON divididos, como: /content/.../jcr:content/root/container.2.json/content/.../jcr:content/root/container.1.json/content/.../jcr:content/root/container.0.json
Causa
DefaultGetServlet impone un límite en el número de nodos devueltos en una sola respuesta JSON. Cuando se supera este límite, el servlet devuelve una respuesta dividida, que el flujo de trabajo de creación de AEM no gestiona actualmente durante las operaciones de movimiento de componentes.
Resolución resolution
Siga los pasos a continuación para resolver el problema:
- Inicie sesión en la configuración de la consola web de AEM en
/system/console/configMgr. - Busque la configuración de Apache Sling
GETServlet (org.apache.sling.servlets.get.DefaultGetServlet). - Aumente el valor de
json.maximumresultsa un número superior al total de nodos del contenedor mayor (por ejemplo, incremente de 1000 a 2000). - Guarde la configuración.
- Vuelva a intentar la operación de movimiento del componente para comprobar si ahora se completa correctamente.
- Monitorice futuras notas de la versión de AEM Sites para ver actualizaciones relativas a una corrección permanente de este problema.