1

404 ページを作成し、現在、存在しないことがわかっている単純なページ リクエストでテストしています。このコードは、作成したエラー ページ (つまり、必要な結果) を表示します。

<!-- CONFIGURATION FOR ERROR PAGES -->
<error-page>
    <!--<exception-type>java.lang.Throwable</exception-type>-->
    <error-code>404</error-code>
    <location>/videoNotFound</location>
</error-page>

ただし、このコードは apache tomcat のデフォルト エラー ページを表示します。

<!-- CONFIGURATION FOR ERROR PAGES -->
<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <!--<error-code>404</error-code>-->
    <location>/videoNotFound</location>
</error-page>

なぜこれが発生しているのか、またはこの問題を解決するために何ができるのでしょうか? オプション 1 は機能しますが、例外の種類ごとに特定のエラー ページを用意したくないため、オプション 2 を好みます。

4

1 に答える 1

2

404java.lang.Throwableは、異なる状況でトリガーされる 2 つの非常に異なるエラー状態です。自分でテストした404ようなものは、存在しない/到達不能なリソースを要求することによってトリガーされjava.lang.Throwable、内部サーバー/プログラミング エラーの結果として発生するエラー状態であり、http ステータス コードで表されます500。この状態は、到達不能なリソースにアクセスするだけではシミュレートできません。通常、ステータス コードの性質は4xx、リクエストが Web アプリケーションに到達する前にスローされることですが、500一連のエラー コードはほとんどが Web アプリケーションによって生成されます。これをテストする唯一の方法は、throwable のインスタンスをスローするExceptionか、Web アプリケーション コードError 内でスローすることです。

最終的に、2 つの別個のerror-page定義が必要になります。1 つはコンテナー関連のエラー (基本的には4xxステータス コード) 用で、もう 1 つは500/throwableタイプのエラー条件用です。

于 2012-10-29T05:18:42.270 に答える