Customizing Pages shown by the Error Handler customizing-pages-shown-by-the-error-handler
Adobe Experience Manager (AEM) comes with a standard error handler for handling HTTP errors; for example, by showing:
System provided scripts exist (under /libs/sling/servlet/errorhandler
) to respond to error codes, by default the following are available with a standard CQ instance:
- 403.jsp
- 404.jsp
How to Customize Pages shown by the Error Handler how-to-customize-pages-shown-by-the-error-handler
You can develop your own scripts to customize the pages shown by the error handler when an error is encountered. Your customized pages are created under /apps
and overlay the default pages (that are under /libs
).
-
In the repository, copy the default scripts:
- from
/libs/sling/servlet/errorhandler/
- to
/apps/sling/servlet/errorhandler/
As the destination path does not exist by default, you must create it when doing this for the first time.
- from
-
Navigate to
/apps/sling/servlet/errorhandler
and do either one of the following:- edit the appropriate existing script so you can supply the information required.
- create, and edit, a new script for the required code.
-
Save the changes and test.
Customizing the Response to HTTP 500 Errors customizing-the-response-to-http-errors
HTTP 500 errors are caused by server-side exceptions.
- 500 Internal Server Error
The server encountered an unexpected condition which prevented it from fulfilling the request.
When request processing results in an exception, the Apache Sling framework (that AEM is built on):
-
logs the exception
-
returns:
- the HTTP response code 500
- the exception stack trace
in the body of the response.
By customizing the pages shown by the error handler a 500.jsp
script can be created. However, it is only used if HttpServletResponse.sendError(500)
is executed explicitly; that is, from an exception catcher.
Otherwise, the response code is set to 500, but the 500.jsp
script is not executed.
To handle 500 errors, the file name of the error handler script must be the same as the exception class (or superclass). To handle all such exceptions, you can create a script /apps/sling/servlet/errorhandler/Throwable.js
p or /apps/sling/servlet/errorhandler/Exception.jsp
.