質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

Spring Boot 404エラー コントローラ内でhtmlファイルが認識されない

iijima140
iijima140

総合スコア9

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

1回答

0グッド

0クリップ

252閲覧

投稿2022/11/19 14:18

編集2022/11/19 14:20

前提

SpringBootにてWebアプリを作成しています。
Eclipseからスタータープロジェクトを作成し、動作確認用のApplicationクラス、Controllerクラス、HTMLファイルを作成しました。

発生している問題・エラーメッセージ

Controller内のメソッドにてhtmlファイル名をreturnにて返していますが、アプリケーションを立ち上げると404エラーになってしまいます。
System.out.println()よりController内のメソッドを通りreturn文まで読まれていることは確認済みです。
また、関係あるかわかりませんがSpring Security提供の http://localhost:8080/login のビューは表示されています。
パッケージ構成やhtmlファイルの配置場所も問題なさそうです(Applicationクラスよりも子パッケージにControllerを配置、classpath/templates 配下にhtmlファイルを配置)
これらよりどうやら自前のtop.htmlがControllerから認識されていないようです。

エラーメッセージはありませんがログを貼り付けておきます。

2022-11-19 22:51:48.381  INFO 84302 --- [ restartedMain] c.e.urisubtitle.UriSubtitleApplication  : Starting UriSubtitleApplication using Java 11.0.16 on sakuas-Mac2.local with PID xxxxx (ディレクトリ名/bin/main started by ユーザ名 in ディレクトリ名) 2022-11-19 22:51:48.382  INFO 84302 --- [ restartedMain] c.e.urisubtitle.UriSubtitleApplication  : No active profile set, falling back to 1 default profile: "default" 2022-11-19 22:51:48.443  INFO 84302 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable 2022-11-19 22:51:48.443  INFO 84302 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' 2022-11-19 22:51:49.600  INFO 84302 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http) 2022-11-19 22:51:49.613  INFO 84302 --- [ restartedMain] o.apache.catalina.core.StandardService  : Starting service [Tomcat] 2022-11-19 22:51:49.614  INFO 84302 --- [ restartedMain] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.68] 2022-11-19 22:51:49.707  INFO 84302 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/]  : Initializing Spring embedded WebApplicationContext 2022-11-19 22:51:49.708  INFO 84302 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1265 ms 2022-11-19 22:51:50.145  WARN 84302 --- [ restartedMain] .s.s.UserDetailsServiceAutoConfiguration : Using generated security password: パスワード This generated password is for development use only. Your security configuration must be updated before running your application in production. 2022-11-19 22:51:50.270  INFO 84302 --- [ restartedMain] o.s.s.web.DefaultSecurityFilterChain  : Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@611787f5, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@d64568f, org.springframework.security.web.context.SecurityContextPersistenceFilter@c29513a, org.springframework.security.web.header.HeaderWriterFilter@45396bfc, org.springframework.security.web.csrf.CsrfFilter@138081e1, org.springframework.security.web.authentication.logout.LogoutFilter@990bbf8, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@6bd39e9b, org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter@6e799e61, org.springframework.security.web.authentication.ui.DefaultLogoutPageGeneratingFilter@15c8c8d, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@300b828a, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@4c2259a1, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1cb60f40, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@4910b1da, org.springframework.security.web.session.SessionManagementFilter@203f32da, org.springframework.security.web.access.ExceptionTranslationFilter@72abd3b4, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2785449a] 2022-11-19 22:51:50.325  INFO 84302 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer  : LiveReload server is running on port 35729 2022-11-19 22:51:50.366  INFO 84302 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path '' 2022-11-19 22:51:50.381  INFO 84302 --- [ restartedMain] c.e.urisubtitle.UriSubtitleApplication  : Started UriSubtitleApplication in 2.429 seconds (JVM running for 3.437) 2022-11-19 22:51:54.935  INFO 84302 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]  : Initializing Spring DispatcherServlet 'dispatcherServlet' 2022-11-19 22:51:54.935  INFO 84302 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet  : Initializing Servlet 'dispatcherServlet' 2022-11-19 22:51:54.937  INFO 84302 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet  : Completed initialization in 2 ms through check

該当のソースコード

UriSubtitleApplication.java

1package com.example.urisubtitle; 2import org.springframework.boot.SpringApplication; 3import org.springframework.boot.autoconfigure.SpringBootApplication; 4 5@SpringBootApplication 6public class UriSubtitleApplication { 7 public static void main(String[] args) { 8 SpringApplication.run(UriSubtitleApplication.class, args); 9 } 10}

TestController.java

1package com.example.urisubtitle.controller; 2import org.springframework.stereotype.Controller; 3import org.springframework.web.bind.annotation.RequestMapping; 4 5@Controller 6public class TestController { 7 @RequestMapping("/") 8 public String index() { 9 System.out.println("through check"); 10 return "top"; 11 } 12}

top.html

1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org"> 3<head> 4<meta charset="UTF-8"> 5<title th:text="トップページ">トップページ</title> 6</head> 7<body> 8 <h1 th:text="TOP">トップ</h1> 9</body> 10</html>

当方初心者で何が原因になりうるのかわかっておりません。
他に貼り付けるべき情報がありましたら貼付いたします。

試したこと

  • Controller内定義メソッドを通っていることを確認(@RequestMappingのURIがあっていることを確認)
  • パッケージ構成やhtmlファイルの配置場所の確認
  • 類似質問の確認 (https://teratail.com/questions/344666)

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

asahina1979

2022/11/20 04:29

github 等にあげないと回答がつけれないたぐいかと

回答1

0

自己解決

自己解決しました。みてくださった方ありがとうございます。
application.yml 内のspring.thymeleaf.servlet.content-typeに関する設定項目のタイポが原因でした。
- 正: text/html
- 誤: test/thml

投稿2022/11/20 07:57

iijima140

総合スコア9

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。