A movimentação de componentes falha no Adobe Experience Manager quando contêineres grandes acionam respostas JSON divididas
Este artigo explica por que a movimentação de componentes em uma página no Adobe Experience Manager (AEM) falha quando a página contém um grande número de nós de conteúdo e fornece uma solução temporária.
Descrição description
Ao usar o AEM, mover um componente em uma página que contém um grande número de nós de conteúdo não funciona como esperado. Esse problema ocorre quando o número de nós em um container excede o limite configurado para resultados JSON no Apache Sling GET Servlet (DefaultGetServlet). Por padrão, esse limite é definido como 1000 nós. Quando o limite é excedido, uma solicitação para o ponto de extremidade .infinity.json do contêiner retorna uma resposta HTTP 300 com referências a vários arquivos JSON divididos em vez de uma única resposta JSON. A interface do usuário de criação do AEM não trata essa resposta dividida corretamente, causando falha silenciosa na operação de movimentação de componente.
Ambiente
- Adobe Experience Manager (todas as versões)
Sintomas
- A tentativa de mover um componente em uma página que contém um grande número de nós não tem efeito.
- A solicitação para
/container.infinity.jsonretorna uma resposta HTTP 300 com referências a vários arquivos 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
O DefaultGetServlet impõe um limite ao número de nós retornados em uma única resposta JSON. Quando esse limite é excedido, o servlet retorna uma resposta de divisão, que não é tratada atualmente pelo fluxo de trabalho de criação do AEM durante as operações de movimentação de componentes.
Resolução resolution
Siga as etapas abaixo para resolver o problema:
- Faça logon na Configuração do AEM Web Console em
/system/console/configMgr. - Localize a configuração do Apache Sling
GETServlet (org.apache.sling.servlets.get.DefaultGetServlet). - Aumente o valor de
json.maximumresultspara um número maior que o total de nós no seu maior contêiner (por exemplo: aumente de 1000 para 2000). - Salve a configuração.
- Repita a operação de movimentação do componente para verificar se ele agora é concluído com êxito.
- Monitore as notas de versão futuras do AEM Sites para obter atualizações relacionadas a uma correção permanente para esse problema.