Open3
【Java x Spring】2つの405エラーの違い
SpringBootで405エラーをハンドリングしようとした際、2つの405エラーがあることを知り、違いがわからなかったのでメモ。
基本的に2つとも対応する必要があるのだろうか?
-
HttpClientErrorException.MethodNotAllowed (Spring Framework API) - Javadoc
- SpringFrameworkのもつ405エラー。
- RuntimeException配下
-
MethodNotSupportedException (Jakarta EE 仕様 API) - Javadoc
- Jakarta EE 8 のもつ405エラー
- Exception配下
それとも両者は意味合いが違っていて(例えば以下のようなニュアンスの違い)、状況に分けて使い分けるのだろうか?
- MethodNotAllowed:リクエストしたHTTPメソッドが拒否されている
- 明示的に拒否されている = ブラックリストに載っている
- MethodNotSupported:リクエストしたHTTPメソッドが定義されていない
- 許可されていないだけ = ホワイトリストに載っていない
と思ったら、SpringにもMethodNotSupported
が存在していた
-
HttpRequestMethodNotSupportedException (Spring Framework API) - Javadoc
- こちらはException配下(ServletException)