Personalizzazione delle pagine di errore

AEM viene fornito con un gestore di errori standard per la gestione degli errori HTTP; ad esempio, mostrando:

Messaggio di errore standard

Per rispondere agli errori, AEM fornisce un 404.jsp script sotto /libs/sling/servlet/errorhandler.

SUGGERIMENTO

Poiché AEM è basato su Apache Sling, sono disponibili ulteriori informazioni nella documentazione relativa alla gestione degli errori Apache.

NOTA

Su un'istanza dell'autore, Filtro di debug CQ WCM è attivato per impostazione predefinita. Questo si traduce sempre nel codice di risposta 200. Il gestore di errori predefinito risponde scrivendo la traccia completa dello stack nella risposta.

In un'istanza di pubblicazione, il filtro di debug CQ WCM è sempre disabilitato (anche se configurato come abilitato).

Come personalizzare le pagine visualizzate dal gestore errori

È possibile sviluppare script personalizzati per personalizzare le pagine mostrate dal gestore di errori quando si verifica un errore. A questo scopo, sfrutterai Meccanismo di sovrapposizione standard AEM in modo che le pagine personalizzate vengano create in /apps e sovrapponi le pagine predefinite sotto /libs.

  1. Nell’archivio, copia gli script predefiniti:

    • da /libs/sling/servlet/errorhandler/
    • a /apps/sling/servlet/errorhandler/

    Il percorso di destinazione non esiste per impostazione predefinita, pertanto sarà necessario crearlo per la prima volta.

  2. Accedi a /apps/sling/servlet/errorhandler. Qui puoi effettuare le seguenti operazioni:

    • modificare lo script esistente appropriato per fornire le informazioni richieste. Oppure
    • crea e modifica un nuovo script per il codice richiesto.
  3. Salva le modifiche e verifica.

ATTENZIONE

La 404.jsp lo script è stato specificamente progettato per garantire l'AEM dell'autenticazione; in particolare, per consentire l'accesso al sistema in caso di questi errori.

Pertanto, la sostituzione di questo script dovrebbe essere fatto con grande cura.

Personalizzazione della risposta agli errori HTTP 500

HTTP Errore server interno 500 indica un errore lato server, ad esempio il server che ha riscontrato una condizione imprevista che ha impedito il soddisfacimento della richiesta.

Quando l’elaborazione della richiesta genera un’eccezione, il framework Sling Apache (AEM basato su):

  • Registra l'eccezione
  • E restituisce il corpo della risposta:
    • Codice di risposta HTTP 500
    • Traccia dello stack di eccezioni

Da personalizzazione delle pagine mostrate dal gestore di errori a 500.jsp è possibile creare uno script. Tuttavia, viene utilizzato solo se HttpServletResponse.sendError(500) è eseguito esplicitamente; ovvero da un catcher di eccezione.

In caso contrario, il codice di risposta è impostato su 500, ma il 500.jsp script non eseguito.

Per gestire 500 errori, il nome file dello script del gestore di errori deve essere lo stesso della classe di eccezione (o superclasse). Per gestire tutte queste eccezioni è possibile creare uno script /apps/sling/servlet/errorhandler/Throwable.jsp o /apps/sling/servlet/errorhandler/Exception.jsp.

ATTENZIONE

Su un'istanza dell'autore, Filtro di debug CQ WCM è attivato per impostazione predefinita. Questo si traduce sempre nel codice di risposta 200. Il gestore di errori predefinito risponde scrivendo la traccia completa dello stack nella risposta.

Per un gestore di errori personalizzato, sono necessarie le risposte con codice 500, quindi è necessario CQ WCM Debug Filter deve essere disabilitato. In questo modo viene restituito il codice di risposta 500, che a sua volta attiva il gestore di errori Sling corretto.

In un'istanza di pubblicazione, il filtro di debug CQ WCM è sempre disabilitato (anche se configurato come abilitato).

In questa pagina