Lo spostamento del componente non riesce in Adobe Experience Manager quando contenitori di grandi dimensioni attivano risposte JSON divise
Questo articolo spiega perché lo spostamento di componenti all’interno di una pagina in Adobe Experience Manager (AEM) non riesce se la pagina contiene un numero elevato di nodi di contenuto e fornisce una soluzione alternativa temporanea.
Descrizione description
Quando si utilizza AEM, lo spostamento di un componente all’interno di una pagina che contiene un numero elevato di nodi di contenuto non funziona come previsto. Questo problema si verifica quando il numero di nodi in un contenitore supera il limite configurato per i risultati JSON nel servlet Apache Sling GET (DefaultGetServlet). Per impostazione predefinita, questo limite è impostato su 1000 nodi. Quando il limite viene superato, una richiesta all’endpoint .infinity.json del contenitore restituisce una risposta HTTP 300 con riferimenti a più file JSON suddivisi anziché a una singola risposta JSON. L’interfaccia utente di authoring di AEM non gestisce correttamente questa risposta di suddivisione, causando un errore silenzioso nell’operazione di spostamento del componente.
Ambiente
- Adobe Experience Manager (tutte le versioni)
Sintomi
- Il tentativo di spostare un componente all’interno di una pagina contenente un numero elevato di nodi non ha alcun effetto.
- La richiesta a
/container.infinity.jsonrestituisce una risposta HTTP 300 con riferimenti a più file JSON suddivisi, ad esempio: /content/.../jcr:content/root/container.2.json/content/.../jcr:content/root/container.1.json/content/.../jcr:content/root/container.0.json
Causa
DefaultGetServlet applica un limite al numero di nodi restituiti in una singola risposta JSON. Quando questo limite viene superato, il servlet restituisce una risposta divisa che al momento non è gestita dal flusso di lavoro di authoring di AEM durante le operazioni di spostamento dei componenti.
Risoluzione resolution
Per risolvere il problema, segui i passaggi seguenti:
- Accedere alla configurazione della console Web AEM all’indirizzo
/system/console/configMgr. - Individua la configurazione per Apache Sling
GETServlet (org.apache.sling.servlets.get.DefaultGetServlet). - Aumentare il valore di
json.maximumresultsa un numero maggiore del totale dei nodi nel contenitore più grande (ad esempio, da 1000 a 2000). - Salva la configurazione.
- Ripetere l’operazione di spostamento del componente per verificare se è stato completato correttamente.
- Monitora le future note sulla versione di AEM Sites per aggiornamenti relativi a una correzione permanente per questo problema.