Personnalisation des pages affichées par le gestionnaire d’erreurs

AEM est fourni avec un gestionnaire d’erreurs standard pour la gestion des erreurs HTTP ; par exemple, en affichant :

chlimage_1-67

System provided scripts exist (under /libs/sling/servlet/errorhandler) to respond to error codes, by default the following are available with a standard CQ instance:

  • 403.jsp
  • 404.jsp
Remarque

AEM is based on Apache Sling, so see https://sling.apache.org/site/errorhandling.html for detailed information about Sling Error Handling.

Remarque

Sur une instance de création, le Filtre de débogage de la gestion du contenu web CQ est activé par défaut. Cela donne toujours comme résultat le code de réponse 200. Le gestionnaire d’erreurs par défaut répond en écrivant la trace de pile complète sur la réponse.

Sur une instance de publication, le filtre de débogage de la gestion du contenu web CQ est toujours désactivé (même s’il est configuré comme étant activé).

Méthode de personnalisation des pages affichées par le gestionnaire d’erreurs

Vous pouvez développer vos propres scripts afin de personnaliser les pages affichées par le gestionnaire d’erreurs lors de la détection d’une erreur. Your customized pages will be created under /apps and overlay the default pages (that are under /libs).

Remarque

Pour plus d’informations, voir Utilisation de recouvrements.

  1. Dans le référentiel, copiez le(s) script(s) par défaut :

    • de /libs/sling/servlet/errorhandler/
    • vers /apps/sling/servlet/errorhandler/

    Puisque le chemin de destination n’existe pas par défaut, vous devez le créer lorsque vous effectuez cette opération pour la première fois.

  2. Accédez à /apps/sling/servlet/errorhandler. Ici, vous pouvez effectuer l’une des opérations suivantes :

    • Modifier le script existant approprié pour fournir les informations requises.
    • Créer un script, et le modifier, pour le code requis.
  3. Enregistrez les modifications et effectuez un test.

ATTENTION

Les gestionnaires 404.jsp et 403.jsp ont été spécialement conçus pour prendre en compte l’authentification CQ5 ; en particulier, pour permettre une connexion système si ces erreurs se produisent.

Par conséquent, le remplacement de ces deux gestionnaires doit être effectué avec précaution.

Personnalisation de la réponse aux erreurs HTTP 500

Les erreurs HTTP 500 sont dues à des exceptions côté serveur.

Lorsque le traitement des requêtes génère une exception, la structure Apache Sling (sur laquelle l’AEM est créée) :

  • consigne l’exception ;

  • renvoie :

    • le code de réponse HTTP 500
    • la trace de la pile d’exception

    dans le corps de la réponse.

La personnalisation des pages affichées par le gestionnaire d’erreurs permet de créer un script 500.jsp. However, it is only used if HttpServletResponse.sendError(500) is executed explicitly; i.e. from an exception catcher.

Dans le cas contraire, le code de réponse est défini sur , mais le script 500.jsp500. n’est pas exécuté.

Pour gérer les erreurs de type 500, le nom de fichier du script de gestionnaire d’erreurs doit être identique à la classe d’exception (ou superclasse). Pour gérer toutes ces exceptions, vous pouvez créer un script /apps/sling/servlet/errorhandler/Throwable.jsp ou /apps/sling/servlet/errorhandler/Exception.jspp.

ATTENTION

Sur une instance de création, le Filtre de débogage de la gestion du contenu web CQ est activé par défaut. Cela donne toujours comme résultat le code de réponse 200. Le gestionnaire d’erreurs par défaut répond en écrivant la trace de pile complète sur la réponse.

Des réponses avec le code 500 sont nécessaires pour un gestionnaire d’erreurs personnalisé. Par conséquent, le filtre de débogage de la gestion du contenu web CQ doit être désactivé. Cela garantit le renvoi du code de réponse 500 qui, à son tour, déclenche le gestionnaire d’erreurs Sling approprié.

Sur une instance de publication, le filtre de débogage de la gestion du contenu web CQ est toujours désactivé (même s’il est configuré comme étant activé).

Sur cette page