クライアントから,存在しないリソースや例外が発生したサーブレットなどにアクセスがあると,Webコンテナはエラーステータスコードを返します。Webコンテナが返すエラーステータスコードと,エラーステータスコードを返す条件を次の表に示します。
表A-2 Webコンテナが返すエラーステータスコードと条件
エラーステータスコード | エラーステータスコードを返す条件 |
---|
400 Bad Request | 次のどちらかに該当する場合,エラーステータスコード400が返ります。
- FORM認証で使用するログインページとして指定されたリソースに対して,クライアントから直接リクエストを送信し,その結果表示されたログインページからユーザ認証に成功した場合
- 次の三つの条件をすべて満たしているアクセスの場合
- HTTPのバージョンが"HTTP/1.0"のとき
- アクセス対象となるサーブレットがjavax.servlet.http.HttpServletを継承しているとき
- アクセス時のHTTPメソッドが該当するサーブレットでオーバーライドされていないとき
- Content-Lengthヘッダの値が2147483647より大きい,または0より小さいリクエストヘッダでアクセスされた場合
- Content-Lengthヘッダの値が数値以外のリクエストヘッダでアクセスされた場合
- Content-Lengthヘッダを複数含むリクエストヘッダでアクセスされた場合
- リクエストURIを正規化できなかった場合
|
401 Unauthorized | BASIC認証を必要とするリソースに対して,次のようなアクセスがあった場合,エラーステータスコード401が返ります。
- 不正なユーザ名,またはパスワードでアクセスされた場合
- 認証情報を含まないでアクセスされた場合(Authorizationヘッダがないアクセス)。
|
403 Forbidden | 次のどれかに該当する場合,エラーステータスコード403が返ります。
- BASIC認証,またはFORM認証を必要とするリソースに対して,認可できないユーザ名でアクセスされた場合
- web.xmlで,auth-constraint要素にrole-name要素を指定しないで,すべてのアクセスを許可しないとするリソースにアクセスされた場合※1
- 静的コンテンツに対して,PUTまたはDELETEメソッドでアクセスされた場合
- web.xmlの<transport-guarantee>要素で,INTEGRALまたはCONFIDENTIALが設定されているリソースにhttpでアクセスされた場合※2
|
404 Not Found | 次のどちらかのアクセスがあった場合,エラーステータスコード404が返ります。
- 存在しないリソースにアクセスされた場合
- javax.servlet.UnavailableExceptionが発生しているサーブレット,またはJSPファイルにアクセスされた場合※3
|
405 Method Not Allowed | 次の三つの条件をすべて満たしているアクセスの場合,エラーステータスコード405が返ります。
- HTTPのバージョンが"HTTP/1.1"の場合
- アクセス対象となるサーブレットがjavax.servlet.http.HttpServletを継承している場合
- アクセス時のHTTPメソッドが該当するサーブレットでオーバーライドされていない場合
|
412 Precondition Failed | If-Matchヘッダ,またはIf-Unmodified-Sinceヘッダで指定した条件に一致しない静的コンテンツへのアクセスの場合,エラーステータスコード412が返ります。 |
413 Request Entity Too Large | リクエストボディのサイズが上限値を超えた場合,エラーステータスコード413が返ります。 |
416 Requested Range Not Satisfiable | 次のどれかに当てはまる不正なRangeヘッダの値を使用した静的コンテンツへのアクセスの場合,エラーステータスコード416が返ります。
- Rangeヘッダの値が"byte"から始まっていない
- 範囲定義に数字や"-"を使用していない
- 指定範囲が妥当ではない
|
500 Internal Server Error | 次のどれかに該当する場合,エラーステータスコード500が返ります。
- 例外が発生するサーブレットまたはJSPファイルにアクセスされた場合※4
- コンパイルに失敗したJSPファイルにアクセスされた場合
- 削除された静的コンテンツにアクセスされた場合※5
- 静的コンテンツへのアクセスでI/Oエラーが発生した場合
- web.xmlの定義が不正な状態で,<auth-constraint>要素で保護されたリソースにアクセスされた場合※6
|
501 Not Implemented | 静的コンテンツまたはjavax.servlet.http.HttpServletを継承したサーブレットに対して,GET,HEAD,POST,PUT,DELETE,OPTIONS,TRACEメソッド以外のHTTPメソッドでアクセスされた場合,エラーステータスコード501が返ります。 |
503 Service Unavailable | 次のどれかに該当する場合,エラーステータスコード503が返ります。
- リクエストの実行待ちキューに空きがない場合※7
- javax.servlet.UnavailableExceptionが発生しているサーブレットまたはJSPファイルにアクセスされた場合※8
- 終了処理中のWebコンテナに対してアクセスされた場合
- 予期しないエラーまたは例外によって,異常な状態になったWebアプリケーションにアクセスされた場合
- Webコンテナサーバで,Webコンテナサーバだけが起動して,Webアプリケーションが起動していない場合に,起動しなかったWebアプリケーションにアクセスされたとき
|
注※1 Webアプリケーションのバージョンが2.4以降の場合に該当します。
注※2 usrconf.propertiesのwebserver.connector.redirect_https.portキーに転送先のhttpsのポート番号を設定していない場合が該当します。
注※3 Webアプリケーションのバージョンが2.4以降の場合で,永久的に利用できないことを示すjavax.servlet.UnavailableExceptionが発生し,サーブレットおよびJSPファイルで例外をcatchしていないときが該当します。
注※4 次のような場合が該当します。
- Webアプリケーションのバージョンが2.4以降の場合
サーブレットまたはJSPで例外をcatchしていないとき
- Webアプリケーションのバージョンが2.3の場合
web.xmlの<error-page>タグまたはJSPファイルのpageディレクティブでエラーページの指定がなく,サーブレットまたはJSPファイルで例外をcatchしていないとき
注※5 Webアプリケーションのリロード機能,JSPファイルの再コンパイル機能,またはJ2EEアプリケーションのリロード機能を使用しない場合が該当します。
注※6 web.xmlで<auth-constraint>要素に<role-name>要素が定義され,<login-config>要素が定義されていない場合に該当します。この状態でアプリケーションを開始すると,KDJE39150-Wの警告メッセージがコンソール画面,およびメッセージログに出力されます。
注※7 Webアプリケーション単位の同時実行スレッド数制御,またはURLグループ単位の同時実行スレッド数制御を設定している場合が該当します。
注※8 次のような場合が該当します。
- Webアプリケーションのバージョンが2.4以降の場合
一時的に利用できないことを示す,javax.servlet.UnavailableExceptionが発生し,サーブレットまたはJSPで例外をcatchしていないとき
- Webアプリケーションのバージョンが2.3の場合
web.xmlの<error-page>タグまたはJSPファイルのpageディレクティブでエラーページの指定がなく,サーブレットまたはJSPファイルで例外をcatchしていないとき