AEM viene fornito con un gestore di errori standard per la gestione degli errori HTTP; ad esempio, mostrando:
Esistono script forniti dal sistema (in /libs/sling/servlet/errorhandler
) per rispondere ai codici di errore, per impostazione predefinita sono disponibili le seguenti opzioni con un'istanza CQ standard:
AEM è basato su Apache Sling, quindi vedere https://sling.apache.org/site/errorhandling.html per informazioni dettagliate sulla gestione degli errori Sling.
In un'istanza di creazione, il filtro di debug CQ WCM è abilitato per impostazione predefinita. 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 è sempre disabilitato (anche se configurato come abilitato).**
È possibile sviluppare script personalizzati per personalizzare le pagine mostrate dal gestore errori quando si verifica un errore. Le pagine personalizzate verranno create in /apps
e sovrapporranno le pagine predefinite (che si trovano sotto /libs
).
Per ulteriori informazioni, consultate Utilizzo delle sovrapposizioni.
Nell'archivio, copiare gli script predefiniti:
/libs/sling/servlet/errorhandler/
/apps/sling/servlet/errorhandler/
Poiché il percorso di destinazione non esiste per impostazione predefinita, sarà necessario crearlo al primo tentativo.
Accedi a /apps/sling/servlet/errorhandler
. Potete effettuare le seguenti operazioni:
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.
Gli errori HTTP 500 sono causati da eccezioni lato server.
Quando l'elaborazione della richiesta genera un'eccezione, il framework Apache Sling (che AEM è basato su):
registra l'eccezione
return:
nel corpo della risposta.
Per personalizzare le pagine visualizzate dal gestore di errori è possibile creare uno script 500.jsp
. Tuttavia, viene utilizzato solo se HttpServletResponse.sendError(500)
viene eseguito in modo esplicito; ovvero da un rilevatore di eccezioni.
In caso contrario, il codice di risposta è impostato su 500, ma lo script 500.jsp
non viene 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
.
In un'istanza di creazione, il filtro di debug CQ WCM è abilitato per impostazione predefinita. 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 disabilitare il filtro di debug 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 è sempre disabilitato (anche se configurato come abilitato).**