AEM vem com um manipulador de erros padrão para lidar com erros HTTP; por exemplo, mostrando:
Para responder a erros, AEM fornece uma 404.jsp
script em /libs/sling/servlet/errorhandler
.
Como o AEM é baseado no Apache Sling, mais informações estão disponíveis na documentação de tratamento de erros do Apache.
Em uma instância do autor, Filtro de depuração do CQ WCM está ativada por padrão. Isso sempre resulta no código de resposta 200. O manipulador de erros padrão responde gravando o rastreamento completo da pilha na resposta.
Em uma instância de publicação, o Filtro de depuração do CQ WCM é always 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. Para fazer isso, você aproveitará AEM mecanismo de sobreposição padrão para que suas páginas personalizadas sejam criadas em /apps
e sobrepor as páginas padrão que estão em /libs
.
No repositório, copie os scripts padrão:
/libs/sling/servlet/errorhandler/
/apps/sling/servlet/errorhandler/
O caminho de destino não existe por padrão, portanto, será necessário criá-lo ao fazer isso pela primeira vez.
Vá até /apps/sling/servlet/errorhandler
. Aqui você pode:
Salve as alterações e teste.
O 404.jsp
O script foi especificamente concebido para servir AEM autenticação; em particular, para permitir o login do sistema no caso desses erros.
Portanto, a substituição deste script deve ser feita com muito cuidado.
O HTTP Erro interno do servidor 500 indica um erro do lado do servidor, como o servidor encontrando uma condição inesperada que o impedia de atender à solicitação.
Quando o processamento da solicitação resulta em uma exceção, a estrutura do Apache Sling (que AEM é criada):
Por personalização das páginas mostradas pelo manipulador de erros a 500.jsp
é possível criar um script. No entanto, ele só será usado se HttpServletResponse.sendError(500)
é executado explicitamente; ou seja, de um apanhador de exceções.
Caso contrário, o código de resposta será definido como 500, mas a variável 500.jsp
script não é executado.
Para lidar com erros 500, o nome do arquivo do script do manipulador de erros deve ser igual à classe de exceção (ou superclasse). Para lidar com todas essas exceções, é possível criar um script /apps/sling/servlet/errorhandler/Throwable.jsp
ou /apps/sling/servlet/errorhandler/Exception.jsp
.
Em uma instância do autor, Filtro de depuração do CQ WCM está ativada por padrão. Isso sempre resulta no código de resposta 200. O manipulador de erros padrão responde gravando o rastreamento completo da pilha na resposta.
Para um manipulador de erros personalizado, as respostas com código 500 são necessárias, portanto, a variável O filtro de depuração do CQ WCM precisa ser desativado. Isso garante que o código de resposta 500 seja retornado, o que, por sua vez, aciona o manipulador de erros do Sling correto.
Em uma instância de publicação, o Filtro de depuração do CQ WCM é always desativado (mesmo se configurado como ativado).