カテゴリ: Spring 更新日: 2026/01/30

Springの404・405・415エラー原因と対処法まとめ!NoHandlerFoundまで完全解説

404/405/415 など標準エラーの原因と対処:NoHandlerFound…まで総点検
404/405/415 など標準エラーの原因と対処:NoHandlerFound…まで総点検

教材紹介 Spring Boot 学習のおすすめ教材

Spring Bootを使ったWebアプリケーション開発を、 環境構築から実践まで一通り学びたい方には、 定評のある入門書が参考になります。

Spring Boot 3 プログラミング入門をAmazonで見る

※ Amazon広告リンク

先生と生徒の会話形式で理解しよう

生徒

「Spring Bootアプリで突然『404 Not Found』って出て困ってます。何が原因なんでしょうか?」

先生

「それは典型的なHTTPエラーの一つですね。SpringではリクエストURLに対するハンドラが見つからないと404が発生しますよ。」

生徒

「他にも『405 Method Not Allowed』や『415 Unsupported Media Type』が出ることもあって…対処方法が知りたいです!」

先生

「よし、ではSpringでよく出る標準エラーの原因と対処法を総点検してみましょう。」

1. Spring Bootでよく見るHTTPエラーとは?

1. Spring Bootでよく見るHTTPエラーとは?
1. Spring Bootでよく見るHTTPエラーとは?

Spring Bootを使ったWebアプリケーションでは、HTTPステータスコードに応じて様々なエラーが発生します。代表的なものとして、404 Not Found405 Method Not Allowed415 Unsupported Media Typeなどがあります。

これらのエラーはフロントエンドからバックエンドに正しくリクエストが届いていない、もしくはSpring側で処理対象が定義されていないことを意味します。

2. 404 Not Found の原因と解決方法

2. <code>404 Not Found</code> の原因と解決方法
2. 404 Not Found の原因と解決方法

404エラーは、SpringがそのURLに対応するコントローラのメソッド(ハンドラ)を見つけられなかった場合に発生します。

  • URLのパスが間違っている
  • メソッドに@GetMappingなどが正しく設定されていない
  • Spring MVCの設定で静的リソースとの競合がある

また、Spring Bootではapplication.propertiesで以下の設定を入れることで、NoHandlerFoundExceptionを捕捉できます。


spring.mvc.throw-exception-if-no-handler-found=true
spring.web.resources.add-mappings=false

3. 405 Method Not Allowed の原因と対処

3. <code>405 Method Not Allowed</code> の原因と対処
3. 405 Method Not Allowed の原因と対処

このエラーはリクエストのHTTPメソッドが間違っているときに出ます。

  • 例:@GetMappingしかないのに、POSTでリクエストしている
  • フロントエンドで送るメソッドの種類が違う(例:fetchでGET送信するつもりがPOSTに)

Java側での正しい指定例:


@Controller
public class UserController {

    @PostMapping("/register")
    public String register(UserForm form) {
        return "success";
    }
}

このように、受け取るHTTPメソッドに対応したアノテーションを必ず使いましょう。

Spring FrameworkやThymeleafを使った Webアプリ開発の全体像をやさしく理解したい人には、 この入門書が定番です。

Spring Framework超入門をAmazonで見る

※ Amazon広告リンク

4. 415 Unsupported Media Type の原因と対処

4. <code>415 Unsupported Media Type</code> の原因と対処
4. 415 Unsupported Media Type の原因と対処

415エラーは、リクエストのContent-TypeにSpring側が対応できない場合に発生します。

  • application/jsonを送っているのに、Java側で@RequestBodyが付いていない
  • 受け取るクラスにJacksonでパース可能な構造になっていない

例として、以下のように書くことでJSONを受け取ることができます:


@PostMapping(value = "/api", consumes = "application/json")
public ResponseEntity<String> receive(@RequestBody MyRequest request) {
    return ResponseEntity.ok("OK");
}

5. NoHandlerFoundException をキャッチして独自エラー画面を表示

5. <code>NoHandlerFoundException</code> をキャッチして独自エラー画面を表示
5. NoHandlerFoundException をキャッチして独自エラー画面を表示

Springでは、コントローラが見つからない場合、通常はBasicErrorControllerによってエラー画面が表示されます。しかし設定次第でNoHandlerFoundExceptionをキャッチして独自処理に変更できます。


@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(NoHandlerFoundException.class)
    public String handle404(NoHandlerFoundException e) {
        return "error/404";
    }
}

また、application.propertiesで例外を投げる設定も必要です。


spring.mvc.throw-exception-if-no-handler-found=true
spring.web.resources.add-mappings=false

6. 独自のエラーページを作ってUX改善

6. 独自のエラーページを作ってUX改善
6. 独自のエラーページを作ってUX改善

初心者がよく困るのが、真っ白なエラーページ。これを改善するには、resources/templates/error/配下にカスタムのHTMLテンプレートを配置しましょう。


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>ページが見つかりません</title>
</head>
<body>
    <h1>404 Not Found</h1>
    <p>お探しのページは見つかりませんでした。</p>
</body>
</html>

このように、ユーザー向けのエラーページを丁寧に用意することで、Webアプリの信頼性やユーザビリティが向上します。

7. Springの標準エラーは例外ではないことに注意

7. Springの標準エラーは例外ではないことに注意
7. Springの標準エラーは例外ではないことに注意

例えば404405などのHTTPエラーは、Javaでいう例外(Exception)とは少し異なり、Springが内部で処理している状態コードによる応答です。明示的に例外がスローされるわけではなく、ハンドリングされていないURLや不正なメソッドに対する反応です。

そのため、@ExceptionHandlerでキャッチするには、BasicErrorControllerの動作をオーバーライドしたり、HandlerExceptionResolverを使って制御する必要があります。

8. エラーを防ぐためのチェックリスト

8. エラーを防ぐためのチェックリスト
8. エラーを防ぐためのチェックリスト

最後に、Spring Bootアプリでよくある標準エラーを防ぐためのチェックリストをまとめます。

  • URLパスと@RequestMappingの整合性を確認
  • HTTPメソッド(GET/POST/PUTなど)を正確に対応
  • @RequestBodyの付け忘れに注意
  • application.propertiesの設定を見直す
  • 静的ファイルやテンプレートのパスミスに注意
  • 独自エラー画面を整備しUX改善
カテゴリの一覧へ
新着記事
JavaのBufferedOutputStreamクラスの使い方を解説!flushメソッドでデータを確実に出力しよう
SpringのCriteriaBuilderでisTrueメソッドを使った条件付きクエリ作成方法を解説
スッキリわかるJava入門 第4版|独学でもレッスンでも学べる完全ガイド
Springの404・405・415エラー原因と対処法まとめ!NoHandlerFoundまで完全解説
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.3
Java&Spring記事人気No3
Thymeleafのth:classappend属性の使い方を完全ガイド!初心者でもわかる動的クラス追加
No.4
Java&Spring記事人気No4
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ
No.5
Java&Spring記事人気No5
Spring BootのJakarta移行ガイド!初心者向けjavax→jakarta変更ポイント徹底解説
No.6
Java&Spring記事人気No6
Thymeleaf(タイムリーフ)入門!初心者でもわかるSpring Bootとテンプレートエンジンの使い方
No.7
Java&Spring記事人気No7
Springの@Repositoryアノテーションの使い方を徹底解説!初心者でもわかるSpringフレームワークのデータアクセス
No.8
Java&Spring記事人気No8
JavaのEnumクラスのordinalメソッドを徹底解説!初心者でもわかる列挙型の順序番号

💻 作業効率アップに

長時間のコーディングでも疲れにくい♪ 静音ワイヤレスマウス

Logicool Signature M750 を見る

※ Amazon広告リンク