Personalização de páginas mostradas pelo manipulador de erros

AEM vem com um manipulador de erros padrão para lidar com erros HTTP; por exemplo, mostrando:

chlimage_1-67

Os scripts fornecidos pelo sistema existem (em /libs/sling/servlet/errorhandler) para responder a códigos de erro, por padrão, os seguintes estão disponíveis com uma instância CQ padrão:

  • 403.jsp
  • 404.jsp
Observação

AEM é baseado no Apache Sling, portanto consulte https://sling.apache.org/site/errorhandling.html para obter informações detalhadas sobre como lidar com erros de sling.

Observação

Em uma instância do autor, o Filtro de Depuração WCM do CQ está ativado 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 sempre está 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 serão criadas em /apps e sobrepõem 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, será necessário criá-lo ao fazer isso pela primeira vez.

  2. Vá até /apps/sling/servlet/errorhandler. Aqui você pode:

    • edite o script existente apropriado para 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.

CUIDADO

Os manipuladores 404.jsp e 403.jsp foram especificamente projetados para atender à autenticação CQ5; em particular, para permitir o logon do sistema no caso desses erros.

Assim, a substituição destes dois manipuladores deve ser feita com grande cuidado.

Personalização da resposta a erros de HTTP 500

Os erros HTTP 500 são causados por exceções do lado do servidor.

  • Erro​interno do servidor 500O servidor encontrou uma condição inesperada que o impedia de atender à solicitação.

Quando o processamento da solicitação resulta em uma exceção, a estrutura Apache Sling (que AEM incorporada):

  • registra a exceção

  • retorna:

    • o código de resposta HTTP 500
    • o rastreamento da pilha de exceções

    no corpo da resposta.

Ao personalizar as páginas mostradas pelo manipulador de erros, é possível criar um 500.jsp script. No entanto, só é utilizado se HttpServletResponse.sendError(500) for executado explicitamente; Ou seja, de um coletor de exceção.

Caso contrário, o código de resposta será definido como 500, mas o 500.jsp script não será executado.

Para lidar com erros 500, o nome do arquivo do script do manipulador de erros deve ser o mesmo da 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.

CUIDADO

Em uma instância do autor, o Filtro de Depuração WCM do CQ está ativado 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 o código 500 são necessárias; portanto, o Filtro de Depuração WCM do CQ precisa ser desativado. 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 do CQ WCM sempre está desativado (mesmo se configurado como ativado).

Nesta página