500エラーレスポンスをカスタマイズしたい

概要

x-Servletで内部サーバエラーが発生した際のレスポンス内容をカスタマイズできます。
レスポンスコード200を返す、またはリダイレクトさせるなど、運用ポリシーに則したレスポンスを定義することが可能です。

形式

internalServerError.xml設定を参照ください。

説明

従来はx-Servlet内でエラーが発生した場合、端末に対してHTTP500エラー(InternalServerError)を返していたため空白の画面が表示されて切断されていました。
Version2.8.2以上ではこのエラーの内容を任意に設定できるようになり、ユーザに対してメッセージ画面を表示することができます。

<?xml version="1.0" encoding="Shift_JIS"?>
<serverError:StatusLineList
  xmlns:serverError="http://www.flexfirm.jp/x-Servlet/serverError"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.flexfirm.jp/x-Servlet/serverError serverError.xsd">

  <serverError:StatusLine>
    <HttpVersion>HTTP/1.0</HttpVersion>
    <StatusCode>200</StatusCode>
    <ReasonPhrase>Internal Server Error</ReasonPhrase>
    <ResponseHeader>
        <ResponseHeaderName>Content-Type</ResponseHeaderName>
        <ResponseHeaderValue>text/html</ResponseHeaderValue>
    </ResponseHeader>
    <ResponseBody>このページはご利用頂けません。お手数ですが時間を置いてから再度お試し下さい。</ResponseBody>
  </serverError:StatusLine>
</serverError:StatusLineList>

上記のように修正することにより端末にはHTTPステータス200で

このページはご利用頂けません。お手数ですが時間を置いてから再度お試し下さい。
というメッセージを返すようになります。

注意点

  • レスポンス内容を変更できるのはx-Servlet内で発生した500エラーに対してのみです。
    Webサーバ側で500エラーをレスポンスした場合は変換されずにそのまま出力されます。
  • internalServerError.xmlファイルの読み込みエラーが発生した場合は標準の500エラー(bodyは空)が返ります。
TOP