自定义错误处理程序显示的页面

AEM附带用于处理HTTP错误的标准错误处理程序;例如,通过显示:

chlimage_1-67

系统提供的脚本存在(在/libs/sling/servlet/errorhandler下)以响应错误代码,默认情况下,标准CQ实例提供以下脚本:

  • 403.jsp
  • 404.jsp
注意

AEM基于Apache Sling,因此请参阅https://sling.apache.org/site/errorhandling.html了解有关Sling错误处理的详细信息。

注意

在创作实例上,默认情况下启用CQ WCM调试过滤器。 这始终导致响应代码为200。 默认错误处理程序通过将整个堆栈跟踪写入响应进行响应。

在发布实例上,CQ WCM调试过滤器始终​**​处于禁用状态(即使配置为启用)。

如何自定义错误处理程序显示的页面

您可以开发自己的脚本,以在遇到错误时自定义错误处理程序显示的页面。 您的自定义页面将在/apps下创建,并覆盖默认页面(在/libs下)。

注意

有关详细信息,请参阅使用叠加

  1. 在存储库中,复制默认脚本:

    • /libs/sling/servlet/errorhandler/
    • /apps/sling/servlet/errorhandler/

    由于目标路径默认不存在,因此您首次执行此操作时需要创建它。

  2. 导航至 /apps/sling/servlet/errorhandler. 您可以在此处:

    • 编辑适当的现有脚本以提供所需的信息。
    • 创建和编辑所需代码的新脚本。
  3. 保存更改并测试。

注意

404.jsp和403.jsp处理程序专门设计用于满足CQ5身份验证要求;特别是,在出现这些错误时允许系统登录。

因此,更换这两个操纵者,应当非常谨慎。

自定义对HTTP 500错误的响应

HTTP 500错误由服务器端异常引起。

  • 500内部服
    务器错误服务器遇到意外情况,无法完成请求。

当请求处理导致异常时,Apache Sling Framework(AEM基于):

  • 记录异常

  • 返回:

    • HTTP响应代码500
    • 异常堆栈跟踪

    在响应中。

通过自定义错误处理程序显示的页面,可以创建500.jsp脚本。 但是,仅当显式执行HttpServletResponse.sendError(500)时才使用它;例如从例外捕手那里。

否则,响应代码设置为500,但不执行500.jsp脚本。

要处理500个错误,错误处理程序脚本的文件名必须与异常类(或超类)相同。 要处理所有此类异常,可创建脚本/apps/sling/servlet/errorhandler/Throwable.jsp或/apps/sling/servlet/errorhandler/Exception.jsp

注意

在创作实例上,默认情况下启用CQ WCM调试过滤器。 这始终导致响应代码为200。 默认错误处理程序通过将整个堆栈跟踪写入响应进行响应。

对于自定义错误处理程序,需要代码为500的响应——因此需要禁用CQ WCM调试过滤器。 这确保返回响应代码500,这反过来又触发正确的Sling错误处理程序。

在发布实例上,CQ WCM调试过滤器始终​**​处于禁用状态(即使配置为启用)。

在此页面上

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now