AEM enthält einen Standard-Fehler-Handler für die Verarbeitung von HTTP-Fehlern. Beispielsweise wird Folgendes gezeigt:
Systembereitgestellte Skripte sind vorhanden (unter /libs/sling/servlet/errorhandler
), um auf Fehler-Codes zu reagieren, sind in einer Standard-CQ-Instanz standardmäßig die folgenden verfügbar:
AEM basiert auf Apache Sling, siehe https://sling.apache.org/site/errorhandling.html für detaillierte Informationen zur Sling-Fehlerbehandlung.
In Autoreninstanzen ist CQ WCM Debug Filter standardmäßig aktiviert. Das Ergebnis ist immer der Antwort-Code 200. Der standardmäßige Fehler-Handler schreibt als Reaktion die vollständige Stacktrace in die Antwort.
In Veröffentlichungsinstanzen ist CQ WCM Debug Filter immer deaktiviert (selbst wenn er als aktiviert konfiguriert ist).
Sie können Ihre eigenen Skripte erstellen, um die Seiten anzupassen, die der Fehler-Handler anzeigt, wenn ein Fehler auftritt. Ihre angepassten Seiten werden unter /apps
und überlagern die Standardseiten (die unter /libs
).
Unter Verwendung von Überlagerungen finden Sie weitere Informationen.
Kopieren Sie im Repository das/die Standardskript(e):
/libs/sling/servlet/errorhandler/
/apps/sling/servlet/errorhandler/
Da der Zielpfad standardmäßig nicht vorhanden ist, müssen Sie ihn erstellen, wenn Sie diesen Vorgang zum ersten Mal durchführen.
Navigieren Sie zu /apps/sling/servlet/errorhandler
. Hier können Sie entweder:
Speichern Sie die Änderungen und testen Sie sie.
Die Handler 404.jsp und 403.jsp sind speziell für die CQ5-Authentifizierung entwickelt. Insbesondere ermöglichen sie eine Systemanmeldung, wenn diese Fehler auftreten.
Daher sollten Sie diese Handler nur mit größter Vorsicht ersetzen.
HTTP 500-Fehler werden von serverseitigen Ausnahmefehlern verursacht.
Wenn die Anforderungsverarbeitung zu einer Ausnahme führt, wird das Apache Sling-Framework (auf dem AEM aufbaut):
Protokollierung des Ausnahmefehlers
Folgendes wird zurückgegeben:
im Haupttext der Antwort.
Indem Sie die Seiten anpassen, die der Fehler-Handler zeigt, können Sie ein 500.jsp
-Skript erstellen. Es wird jedoch nur verwendet, wenn HttpServletResponse.sendError(500)
explizit ausgeführt wird, d. h. von einem Abfangalgorithmus für Ausnahmen.
Andernfalls wird der Antwort-Code auf „500“ gesetzt, aber das 500.jsp
-Skript wird nicht ausgeführt.
Um 500-Fehler zu verarbeiten, muss der Dateiname des Fehler-Handler-Skripts identisch mit der Ausnahmeklasse (oder der übergeordneten Klasse) sein. Um alle diese Ausnahmen zu handhaben, können Sie ein Skript erstellen /apps/sling/servlet/errorhandler/Throwable.js
p oder /apps/sling/servlet/errorhandler/Exception.jsp
.
In Autoreninstanzen ist CQ WCM Debug Filter standardmäßig aktiviert. Das Ergebnis ist immer der Antwort-Code 200. Der standardmäßige Fehler-Handler schreibt als Reaktion die vollständige Stacktrace in die Antwort.
Für eine individuelle Fehlerverarbeitung sind Antworten mit Code 500 erforderlich. Der CQ WCM Debug-Filter muss also deaktiviert sein. Dadurch wird sichergestellt, dass der Antwort-Code 500 zurückgegeben wird, was wiederum den richtigen Sling-Fehler-Handler auslöst.
In Veröffentlichungsinstanzen ist CQ WCM Debug Filter immer deaktiviert (selbst wenn er als aktiviert konfiguriert ist).