Personalização de Páginas de Erro
- Aplica-se a:
- Experience Manager as a Cloud Service
- Tópicos:
- Desenvolvimento
Criado para:
- Administrador
- Desenvolvedor
O AEM vem com um manipulador de erros padrão para lidar com erros HTTP; por exemplo, mostrando:
Para responder a erros, o AEM fornece um script 404.jsp
em /libs/sling/servlet/errorhandler
.
Como personalizar páginas mostradas pelo manipulador de erros
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ê usa o mecanismo de sobreposição padrão do AEM para que suas páginas personalizadas sejam criadas em /apps
e sobreponham as páginas padrão em /libs
.
-
No repositório, copie o(s) script(s) padrão:
- de
/libs/sling/servlet/errorhandler/
- para
/apps/sling/servlet/errorhandler/
O caminho de destino não existe por padrão, portanto, é necessário criá-lo ao fazer isso pela primeira vez.
- de
-
Navegue até
/apps/sling/servlet/errorhandler
. Aqui é possível:- edite o script existente apropriado para fornecer as informações necessárias. Ou
- crie e edite um novo script para o código necessário.
-
Salve as alterações e teste.
404.jsp
foi projetado especificamente para atender à autenticação AEM; especificamente, para permitir o logon do sistema no caso desses erros.Personalização da resposta a erros HTTP 500
O HTTP 500 Erro Interno do Servidor indica um erro do lado do servidor, como o servidor ter encontrado uma condição inesperada que o impediu de atender à solicitação.
Quando o processamento de solicitações resulta em uma exceção, a estrutura Apache Sling (na qual o AEM é integrado):
-
Registra a exceção
-
E retorna no corpo da resposta:
- O código de resposta HTTP 500
- O rastreamento de pilha de exceção
Com a personalização das páginas mostradas pelo manipulador de erros, um script 500.jsp
pode ser criado. No entanto, ele só é usado se HttpServletResponse.sendError(500)
for executado explicitamente; ou seja, a partir de um capturador de exceção.
Caso contrário, o código de resposta será definido como 500, mas o script 500.jsp
não será 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.jsp
ou /apps/sling/servlet/errorhandler/Exception.jsp
.
x-aem-error-pass: true
.Isso funciona somente para respostas provenientes do AEM ou da camada Apache/Dispatcher. Outros erros inesperados provenientes de camadas de infraestrutura intermediária ainda exibirão a página de erro genérico.