Show Menu
トピック×

エラーハンドラーによって表示されるページのカスタマイズ

AEMには、HTTPエラーを処理するための標準的なエラーハンドラーが付属しています。例えば、次のように表示します。
System provided scripts exist (under /libs/sling/servlet/errorhandler ) to respond to error codes, by default the following are available with a standard CQ instance:
  • ​403.jsp
  • ​404.jsp
AEM is based on Apache Sling, so see https://sling.apache.org/site/errorhandling.html for detailed information about Sling Error Handling.
オーサーインスタンスでは、 CQ WCM Debug Filter がデフォルトで有効です。このフィルターは常に応答コード 200 を返します。デフォルトのエラーハンドラーは、応答に対してフルスタックトレースを書き込むことで応答します。
パブリッシュインスタンスでは、CQ WCM Debug Filter は、有効として設定されている場合も含めて常に無効になります。**

エラーハンドラーによって表示されるページのカスタマイズ方法

独自のスクリプトを作成して、エラーが発生した場合にエラーハンドラーによって表示されるページをカスタマイズできます。 カスタマイズしたページがデフォルトのペ /apps ージの下に作成され、その下にオーバーレイされ /libs ます。
詳しくは、 オーバーレイの使用方法 を参照してください。
  1. リポジトリ内で、デフォルトスクリプトをコピーします。
    • 追加の /libs/sling/servlet/errorhandler/
    • /apps/sling/servlet/errorhandler/ コピー先のパスはデフォルトでは存在しないので、最初は作成する必要があります。
  2. /apps/sling/servlet/errorhandler に移動します。次のどちらかを実行します。
    • 既存のスクリプトを編集し、必要な情報を追加します。
    • 必要とするコード用に新しいスクリプトを作成し、編集します。
  3. 変更を保存し、テストします。
404.jsp および 403.jsp ハンドラーは、CQ5 認証に合わせて設計されています。特に、これらのエラーの発生時にシステムログインができるようになっています。
そのため、これらの 2 つのハンドラーを置き換える際には十分に気をつけて作業してください。

HTTP 500 エラーへの応答のカスタマイズ

HTTP 500 エラーはサーバー側の例外によって発生します。
リクエスト処理が例外の結果、Apache Slingフレームワーク(AEMが構築されているフレームワーク):
  • 例外をロギングします。
  • 次を返します。
    • HTTP 応答コード 500
    • 例外スタックトレース これらは応答の本文内で返されます。
エラーハンドラーによって表示されるページをカスタマイズする ことで、 500.jsp スクリプトを作成できます。However, it is only used if HttpServletResponse.sendError(500) is executed explicitly; i.e. from an exception catcher.
それ以外の場合は、応答コードは に設定されますが、 500.jsp 500. スクリプトは実行されません。
500 エラーを処理するには、エラーハンドラースクリプトの名前を例外クラス(またはスーパークラス)と同じにする必要があります。このような例外をすべて処理するには、スクリプト /apps/sling/servlet/errorhandler/Throwable.js pまたはを作成しま /apps/sling/servlet/errorhandler/Exception.jsp す。
オーサーインスタンスでは、 CQ WCM Debug Filter がデフォルトで有効です。このフィルターは常に応答コード 200 を返します。デフォルトのエラーハンドラーは、応答に対してフルスタックトレースを書き込むことで応答します。
カスタムエラーハンドラーの場合、コード 500 を含む応答が必要です。そのため、 CQ WCM Debug Filter を無効にする必要があります 。そうすることで、応答コード 500 が返され、それによって正しい Sling エラーハンドラーがトリガーされます。
パブリッシュインスタンスでは、CQ WCM Debug Filter は、有効として設定されている場合も含めて常に無効になります。**