Skip to content
Playground

Spring Boot

コントローラーテンプレート を書いてサーバーを起動しても、画面が出ない、サーバーが起動しないことがあります。ブラウザーとターミナルに出る現象から、原因を絞り込めます。

ビュー名に対応するテンプレートが見つからないと、ブラウザーには Whitelabel Error Page、サーバーのターミナルには TemplateInputException が出力されます。

org.thymeleaf.exceptions.TemplateInputException:
Error resolving template [home], template might not exist or might not be accessible by any of the configured Template Resolvers

template [home] の部分に、コントローラーが返したビュー名が入ります。次の原因が典型的です。

  • ビュー名に .html を含めている(return "home.html"
  • 大文字小文字が違う(return "Home"home.html
  • テンプレートが templates/ 以外の場所にある

ビュー名と templates/ 配下のファイル名が一致しているか、拡張子を含めていないかを確認します。

404 Not Found は、リクエストした URL に対応するパスがないときに返ります。@GetMapping のパスと URL が一致しているか、コントローラーのクラスに @Controller を付け忘れていないかを確認します。

スタイルや画像が反映されないのは、静的リソースのパスが合っていないためです。static/ 配下のパスと hrefsrc のパスが一致しているか、先頭の /(ルート相対パス)を忘れていないかを確認します。

ポートが使用中でサーバーが起動しない

Section titled “ポートが使用中でサーバーが起動しない”

サーバーが起動せず、ターミナルに次のエラーが出るのは、ポート 8080 を別のプロセスが使っているためです。

Web server failed to start. Port 8080 was already in use.

前回起動したサーバーを止め忘れていると、ポートが解放されず、このエラーになります。サーバーの停止 で前のサーバーを止めてから、起動し直します。