Anpassa felsidor :headding-anchor:customizing-error-pages
AEM innehåller en standardfelhanterare för hantering av HTTP-fel, till exempel genom att visa:
För att svara på fel tillhandahåller AEM ett 404.jsp
-skript under /libs/sling/servlet/errorhandler
.
Anpassa sidor som visas av felhanteraren :headding-anchor:how-to-customize-pages-shown-by-the-error-handler
Du kan utveckla egna skript för att anpassa sidorna som visas i felhanteraren när ett fel inträffar. För att göra detta använder du AEM standardövertäckningsmekanism så att dina anpassade sidor skapas under /apps
och övertäcker standardsidorna som finns under /libs
.
-
Kopiera standardskripten i databasen:
- från
/libs/sling/servlet/errorhandler/
- till
/apps/sling/servlet/errorhandler/
Målsökvägen finns inte som standard, så du måste skapa den första gången.
- från
-
Navigera till
/apps/sling/servlet/errorhandler
. Här kan du antingen:- redigera lämpligt skript för att ge den information som behövs. eller
- skapa och redigera ett nytt skript för den kod som behövs.
-
Spara ändringarna och testa.
404.jsp
har utformats särskilt för att hantera AEM autentisering, särskilt för att tillåta systeminloggning vid dessa fel.Anpassa svaret till HTTP 500-fel :headding-anchor:customizing-the-response-to-http-errors
HTTP 500 Internal Server Error indikerar ett serversidesfel, t.ex. att servern påträffade ett oväntat tillstånd som gjorde att den inte kunde utföra begäran.
När bearbetningen av en begäran resulterar i ett undantag, är Apache Sling-ramverket (som AEM bygger på):
-
Loggar undantaget
-
Och returnerar i svarstexten:
- HTTP-svarskoden 500
- Undantagets stackspårning
Genom att anpassa sidorna som visas av felhanteraren kan ett 500.jsp
-skript skapas. Den används dock bara om HttpServletResponse.sendError(500)
körs explicit, det vill säga från en undantagskatalog.
Annars är svarskoden inställd på 500, men skriptet 500.jsp
körs inte.
Om du vill hantera 500 fel måste filnamnet för felhanterarskriptet vara detsamma som undantagsklassen (eller superklassen). Om du vill hantera alla sådana undantag kan du skapa ett skript /apps/sling/servlet/errorhandler/Throwable.jsp
eller /apps/sling/servlet/errorhandler/Exception.jsp
.
x-aem-error-pass: true
.Detta fungerar bara för svar från AEM eller Apache/Dispatcher-lagret. Andra oväntade fel från mellanliggande infrastrukturlager visar fortfarande den allmänna felsidan.