O Adobe Experience Manager (AEM) vem com um manipulador de erros padrão para lidar com erros HTTP; por exemplo, mostrando:
Existem scripts fornecidos pelo sistema (em /libs/sling/servlet/errorhandler
) para responder a códigos de erro, por padrão, os itens a seguir estão disponíveis com uma instância CQ padrão:
O AEM é baseado no Apache Sling. Como tal, ver Tratamento de erros para obter informações detalhadas sobre o tratamento de erros do Sling.
Em uma instância de autor, a variável Filtro de depuração CQ WCM é ativado por padrão. Isso sempre resulta no código de resposta 200. O manipulador de erros padrão responde gravando o rastreamento de pilha completa na resposta.
Em uma instância de publicação, o Filtro de depuração WCM do CQ é sempre desativado (mesmo se configurado como ativado).
Você pode desenvolver seus próprios scripts para personalizar as páginas mostradas pelo manipulador de erros quando um erro for encontrado. Suas páginas personalizadas são criadas em /apps
e sobrepor as páginas padrão (que estão em /libs
).
Consulte Uso de sobreposições para obter mais detalhes.
No repositório, copie os scripts padrão:
/libs/sling/servlet/errorhandler/
/apps/sling/servlet/errorhandler/
Como o caminho de destino não existe por padrão, você deve criá-lo ao fazer isso pela primeira vez.
Navegue até /apps/sling/servlet/errorhandler
e siga um destes procedimentos:
Salve as alterações e teste.
Os manipuladores 404.jsp e 403.jsp foram projetados para atender à autenticação CQ5; em particular, para permitir o logon do sistema se houver esses erros.
Portanto, a substituição desses dois manipuladores deve ser feita com muito cuidado.
Os erros HTTP 500 são causados por exceções do lado do servidor.
Quando o processamento de solicitações resulta em uma exceção, a estrutura do Apache Sling (em que o AEM está integrado):
registra a exceção
devoluções:
no corpo da resposta.
Por personalização das páginas mostradas pelo manipulador de erros a 500.jsp
pode ser criado. No entanto, só é utilizado se HttpServletResponse.sendError(500)
é executado explicitamente; ou seja, de um capturador de exceção.
Caso contrário, o código de resposta será definido como 500, mas a variável 500.jsp
não é executado.
Para tratar erros 500, o nome de arquivo do script do manipulador de erros deve ser igual à classe de exceção (ou superclasse). Para lidar com todas essas exceções, você pode criar um script /apps/sling/servlet/errorhandler/Throwable.js
p ou /apps/sling/servlet/errorhandler/Exception.jsp
.
Em uma instância de autor, a variável Filtro de depuração CQ WCM é ativado por padrão. Isso sempre resulta no código de resposta 200. O manipulador de erros padrão responde gravando o rastreamento de pilha completa na resposta.
Para um manipulador de erros personalizado, são necessárias respostas com o código 500 - para que o O Filtro de Depuração CQ WCM deve estar desabilitado. Isso garante que o código de resposta 500 seja retornado, o que, por sua vez, aciona o manipulador de erros Sling correto.
Em uma instância de publicação, o Filtro de depuração WCM do CQ é sempre desativado (mesmo se configurado como ativado).