エラーハンドラーによって表示されるページのカスタマイズ customizing-pages-shown-by-the-error-handler
Adobe Experience Manager(AEM)には、HTTP エラーを処理するための標準的なエラーハンドラーが付属しています。例えば、次のようなメッセージが表示されます。
エラーコードに応答するシステム提供のスクリプトが(/libs/sling/servlet/errorhandler
の下に)あります。標準の CQ インスタンスでは、デフォルトで次のスクリプトを使用できます。
- 403.jsp
- 404.jsp
エラーハンドラーによって表示されるページのカスタマイズ方法 how-to-customize-pages-shown-by-the-error-handler
独自のスクリプトを作成して、エラーの発生時にエラーハンドラーで表示されるページをカスタマイズできます。カスタマイズしたページが /apps
の下に作成され、デフォルトのページ(/libs
の下)をオーバーレイします。
-
リポジトリ内で、デフォルトスクリプトを次のようにコピーします。
- コピー元:
/libs/sling/servlet/errorhandler/
- コピー先:
/apps/sling/servlet/errorhandler/
コピー先のパスはデフォルトでは存在しないので、最初は作成する必要があります。
- コピー元:
-
/apps/sling/servlet/errorhandler
に移動して、次のいずれかの操作を行います。- 既存のスクリプトを編集し、必要な情報を追加します。
- 必要とするコード用に新しいスクリプトを作成し、編集します。
-
変更を保存し、テストします。
HTTP 500 エラーへの応答のカスタマイズ customizing-the-response-to-http-errors
HTTP 500 エラーはサーバーサイドの例外によって発生します。
- 500 内部サーバーエラー
サーバーで予期しない状況が発生したので、要求を処理できません。
リクエストの処理で例外が発生した場合、Apache Sling フレームワーク(AEM の基盤)は次の処理を実行します。
-
例外をログに記録します
-
以下のものを返します
- HTTP 応答コード 500
- 例外スタックトレース
これらを応答の本文に返します。
エラーハンドラーで表示されるページをカスタマイズすることで、500.jsp
スクリプトを作成できます。ただし、このスクリプトが使用されるのは、HttpServletResponse.sendError(500)
が明示的に(例外キャッチャーから)実行される場合に限ります。
それ以外の場合は、応答コードは 500 に設定されますが、500.jsp
スクリプトは実行されません。
500 エラーを処理するには、エラーハンドラースクリプトのファイル名を例外クラス(またはスーパークラス)と同じにする必要があります。このような例外をすべて処理するには、スクリプト /apps/sling/servlet/errorhandler/Throwable.js
p または /apps/sling/servlet/errorhandler/Exception.jsp
を作成します。