首页 > 解决方案 > 如何检测 Sling 组件未能呈现并采取适当的措施?

问题描述

我正在运行 AEM 6.3,并且有一个使用 HTL、Java 等构建的应用程序。我有一个组件作为资源包含,如下所示:

<div data-sly-resource="${ 'resource-name' @ resourceType='path/to/resource'}"></div>

在某些情况下,该资源无法加载并且没有呈现 HTML。如何检测到该故障并采取措施?

最好,我想正常返回响应并设置 HTTP 标头。

谢谢你的帮助!

标签: aemslingsightlyhtl

解决方案


由于各种原因,可能会发生资源无法渲染:

  • 缺少资源
  • 无法访问资源
  • 缺少渲染 servlet/脚本
  • 呈现 servlet/脚本时出错
  • 其他调用代码中的错误(吊索模型、POJO、服务)
  • ...

即使您设法在处理过程中检测到其中一些故障,设置响应标头也可能为时已晚,因为响应的一部分可能已经提交/刷新。

一种可行的解决方案是设置一个过滤器来处理资源渲染错误。您还可以缓冲响应以确保仅在所有处理完成后才开始发送。


推荐阅读