Personalizar páginas mostradas pelo Manipulador de erros

Última atualização em 2023-09-13
  • Tópicos
  • Developing
    Exibir mais informações sobre este tópico
  • Criado para:
  • Developer

O Adobe Experience Manager (AEM) vem com um manipulador de erros padrão para lidar com erros HTTP; por exemplo, mostrando:

chlimage_1-67

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:

  • 403.jsp
  • 404.jsp
OBSERVAÇÃ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.

OBSERVAÇÃO

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).

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. Suas páginas personalizadas são criadas em /apps e sobrepor as páginas padrão (que estão em /libs).

OBSERVAÇÃO

Consulte Uso de sobreposições para obter mais detalhes.

  1. No repositório, copie os scripts padrão:

    • de /libs/sling/servlet/errorhandler/
    • para /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.

  2. Navegue até /apps/sling/servlet/errorhandler e siga um destes procedimentos:

    • edite o script existente apropriado para que você possa fornecer as informações necessárias.
    • crie e edite um novo script para o código necessário.
  3. Salve as alterações e teste.

ATENÇÃO

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.

Personalização da resposta a erros HTTP 500

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:

    • o código de resposta HTTP 500
    • o rastreamento de pilha de exceção

    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.jsp ou /apps/sling/servlet/errorhandler/Exception.jsp.

ATENÇÃO

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).

Nesta página