カスタムエラーハンドラーページ | 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 は常に無効になります(有効にするように設定した場合も同様)。