Ambiente
Experience Manager
Problema/Sintomi
Come posso creare script personalizzati o gestori di errori che eseguono il rendering di diversi errori HTTP?
Gli script predefiniti del gestore di errori si trovano in /libs/sling/servlet/errorhandler.
È possibile sovrapporre la gestione degli errori predefiniti copiando lo script che si desidera personalizzare da /libs/sling/servlet/errorhandler alla stessa posizione sotto /apps (cioè /apps/sling/servlet/errorhandler). Crea questo percorso se non esiste (per impostazione predefinita non esiste).
Ad esempio, è possibile personalizzare la gestione degli errori 404 copiando /libs/sling/servlet/errorhandler/404.jsp in /apps/sling/servlet/errorhandler/404.jsp
Gli errori http 500 sono causati da eccezioni lato server. Quando l'elaborazione della richiesta si traduce in un'eccezione, il CQ del framework Apache Sling si basa sui log dell'eccezione e restituisce il codice di errore http 500 e la traccia dello stack dell'eccezione nel corpo della risposta.
Per gestire 500 errori, il nome file di uno script del gestore di errori deve essere lo stesso della classe di eccezione (o della superclasse). Quindi, per esempio, per gestire tutte le eccezioni creare uno script /apps/sling/servlet/errorhandler/Throwable.jsp.
Fai riferimento a Gestione degli errori Sling per ulteriori informazioni.
Nota: Il 500.jsp viene preso solo se HttpServletResponse.sendError(500) viene eseguito esplicitamente, cioè da un catcher di eccezioni.
Altrimenti solo il codice di risposta è impostato su 500, ma il 500.jsp non viene eseguito.
In questo caso puoi aggiungere un’ Exception.jsp per gestire tutte queste eccezioni.
Nota: In un'istanza dell'autore il CQ WCM Debug Filter è abilitato per impostazione predefinita. Questo porta sempre a un codice di risposta 200 e viene preso l'Errorhandler predefinito che scrive l'intera traccia dello stack nella risposta. In un'istanza di pubblicazione il CQ WCM Debug Filter è sempre disabilitato (anche se lo configuri per essere abilitato)…