カスタムエラーハンドラーページ | AEM

Adobe Experience Managerでカスタムエラーハンドラーを設定して様々な HTTP エラーをレンダリングするには、カスタムスクリプトを /libs/sling/servlet/errorhandler から /apps. の同じ場所にコピーします

説明 description

環境

Adobe Experience Manager

問題/症状

様々な HTTP エラーをレンダリングするカスタムスクリプトやエラーハンドラーの作成方法

解決策 resolution

デフォルトのエラーハンドラースクリプトは、/libs/sling/servlet/errorhandler にあります。

カスタマイズするスクリプトを /libs/sling/servlet/errorhandler から /apps の同じ場所(例:/apps/sling/servlet/errorhandler)にコピーすることで、デフォルトのエラー処理をオーバーレイできます。 このパスが存在しない場合は作成します(デフォルトでは作成されません)。

例えば、/libs/sling/servlet/errorhandler/404.jsp/apps/sling/servlet/errorhandler/404.jsp にコピーして、404 エラーの処理をカスタマイズできます

http 500 エラーは、サーバー側の例外が原因で発生します。 リクエストの処理で例外が発生した場合、Apache Sling フレームワーク CQ はログに基づいており、例外を返して http エラーコード 500 を返し、応答の本文で例外スタックトレースを返します。

500 エラーを処理するには、エラーハンドラースクリプトのファイル名は、例外クラス(またはスーパークラス)と同じにする必要があります。 例えば、すべての例外を処理するには、スクリプト /apps/sling/servlet/errorhandler/Throwable.jsp を作成します。

詳しくは、Sling エラー処理 ​ を参照してください。

注意: 500.jsp は、HttpServletResponse.sendError (500) が明示的に実行された場合(例:例外キャッチャーから)にのみ取得されます。それ以外の場合は、応答コードのみが 500 に設定されますが、500.jsp は実行されません。 この場合、このような例外をすべて処理する Exception.jsp を追加できます。

メモ: オーサーインスタンスでは、CQ WCM Debug Filter がデフォルトで有効になっています。 これにより、常に応答コード 200 が返され、フルスタックトレースを応答に書き込むデフォルトの Errorhandler が取得されます。 パブリッシュインスタンスでは、CQ WCM Debug Filter は常に無効になります(有効にするように設定した場合も同様)。

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f