405エラーが発生した際の対処法

14.3 405エラーが発生した際の対処法

 本節では405エラーが発生した際の対処法とその手順を説明します。
 405エラーは、入力フォームで指定している送信方式と、サーブレット側で用意しているdoGet()メソッド/doPost()メソッドの記述が噛み合ってない時に発生します。

14.3.1 GET送信に失敗している場合

図 14.3.1 GET送信に失敗した際の405エラーメッセージ

 図のようなメッセージが表示された時は、以下の点について確認しましょう。

 ①送信方式はGETで正しいのか
  仕様書・設計書を確認し、送信方式がGETで良いのか、まず確認しましょう。例えば、ログイン時のID・パスワードを入力するフォームのデータを送信する場合は、POST送信を指定することがほとんどなので、受け取るサーブレット側はdoPost()メソッドしか用意していないことがあります。

 ②画面遷移に関わるフォーム、サーブレットの記述は全てGET送信のもので統一されているか
  入力フォームのmethod属性の記述欄を確認しましょう。また、遷移先のサーブレットにdoGet()メソッドが用意されているかも確認しましょう。もし、サーブレットから別のサーブレットに遷移している場合は、その遷移先のサーブレットもdoGet()メソッドが用意されていないと405エラーが発生しますので、全ての遷移先についてしっかり確認しましょう。

 ③doGet()メソッド名にスペルミスが無いか
  大文字小文字含めて正しく定義されているか、確認しましょう。

14.3.2 POST送信に失敗している場合

図 14.3.2 POST送信に失敗した際の405エラーメッセージ

 図のようなメッセージが表示された時は、以下の点について確認しましょう。

 ①送信方式はPOSTで正しいのか
 仕様書・設計書を確認し、送信方式がPOSTで良いのか、まず確認しましょう。また、URLバーからアクセスしたり、リンクをクリックして画面遷移している場合は必ずGET送信になります。POST送信を想定した記述になっている場合は、本来の仕様に応じて、GET送信の記述に修正する必要があります。

 ②画面遷移に関わるフォーム、サーブレットの記述は全てPOST送信のもので統一されているか
  入力フォームのmethod属性の記述欄を確認しましょう。また、遷移先のサーブレットにdoPost()メソッドが用意されているか確認しましょう。もし、サーブレットから別のサーブレットに遷移している場合は、その遷移先のサーブレットもdoPost()メソッドが用意されていないと405エラーが発生しますので、全ての遷移先についてしっかり確認しましょう。

 ③doPost ()メソッド名にスペルミスが無いか
  大文字小文字含めて正しく定義されているか、確認しましょう。


NEXT>> 14.4 500エラーが発生した際の対処法