Show Menu
ARGOMENTI×

Personalizzazione delle pagine mostrate dal gestore errori

AEM viene fornito con un gestore di errori standard per la gestione degli errori HTTP. ad esempio, mostrando:
Gli script forniti dal sistema esistono (nella sezione /libs/sling/servlet/errorhandler ) per rispondere ai codici di errore, per impostazione predefinita sono disponibili le seguenti opzioni con un'istanza CQ standard:
  • ​403.jsp
  • ​404.jsp
AEM è basato su Apache Sling, pertanto consultate https://sling.apache.org/site/errorhandling.html per informazioni dettagliate sulla gestione degli errori Sling.
Per impostazione predefinita, in un’istanza di authoring CQ WCM Debug Filter è attivato. Questo restituisce sempre il codice di risposta 200. Il gestore errori predefinito risponde scrivendo la traccia dello stack completa nella risposta.
In un'istanza di pubblicazione, il filtro di debug CQ WCM viene sempre disabilitato (anche se configurato come attivato).

Come personalizzare le pagine visualizzate dal gestore errori

È possibile sviluppare script personalizzati per personalizzare le pagine mostrate dal gestore errori quando si verifica un errore. Le pagine personalizzate verranno create sotto /apps e sovrapporranno le pagine predefinite (sotto /libs ).
Consultate Utilizzo delle sovrapposizioni per ulteriori dettagli.
  1. Nell'archivio, copiare gli script predefiniti:
    • from /libs/sling/servlet/errorhandler/
    • a /apps/sling/servlet/errorhandler/ Poiché il percorso di destinazione non esiste per impostazione predefinita, sarà necessario crearlo al primo tentativo.
  2. Accedi a /apps/sling/servlet/errorhandler . Potete effettuare le seguenti operazioni:
    • modificare lo script esistente appropriato per fornire le informazioni richieste.
    • creare e modificare un nuovo script per il codice richiesto.
  3. Salvate le modifiche e verificate il comportamento.
I gestori 404.jsp e 403.jsp sono stati progettati specificamente per garantire l’autenticazione CQ5; in particolare, per consentire l'accesso al sistema in caso di tali errori.
Pertanto, la sostituzione di questi due gestori dovrebbe essere fatta con grande cura.

Personalizzazione della risposta agli errori HTTP 500

Gli errori HTTP 500 sono causati da eccezioni lato server.
  • 500 Errore ​interno del server Il server ha rilevato una condizione imprevista che non consentiva all'utente di soddisfare la richiesta.
Quando l’elaborazione delle richieste genera un’eccezione, il framework Apache Sling (sul quale è basato AEM):
  • registra l'eccezione
  • return:
    • il codice di risposta HTTP 500
    • traccia dello stack di eccezioni nel corpo della risposta.
Personalizzando le pagine visualizzate dal gestore di errori è possibile creare uno 500.jsp script. Tuttavia, è utilizzato solo se HttpServletResponse.sendError(500) è eseguito esplicitamente; ovvero da un rilevatore di eccezioni.
In caso contrario, il codice di risposta è impostato su 500, ma lo 500.jsp script non è eseguito.
Per gestire 500 errori, il nome file dello script del gestore di errori deve essere uguale alla classe di eccezione (o superclasse). Per gestire tutte queste eccezioni è possibile creare uno script /apps/sling/servlet/errorhandler/Throwable.js p o /apps/sling/servlet/errorhandler/Exception.jsp .
Per impostazione predefinita, in un’istanza di authoring CQ WCM Debug Filter è attivato. Questo restituisce sempre il codice di risposta 200. Il gestore errori predefinito risponde scrivendo la traccia dello stack completa nella risposta.
Per un gestore di errori personalizzato, sono necessarie risposte con codice 500, pertanto è necessario disattivare il filtro di debug di CQ WCM. In questo modo viene restituito il codice di risposta 500, che a sua volta attiva il gestore errori Sling corretto.
In un'istanza di pubblicazione, il filtro di debug CQ WCM viene sempre disabilitato (anche se configurato come attivato).