springをApplicationのメインメッソッドで実行したのですがhttp://localhost:8080/roomsにアクセスしても404が返ってくるだけです。
なぜでしょうか。
プロジェクトはSpring Starter Projectで作成しております。
発生している問題・エラーメッセージ
. __ _ _ _
/\\ / _'_ _ _(_)_ _ \ \ \ \
( ( )\_ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ _)| |_)| | | | | || (_| | ) ) ) )
' |__| .|_| |_|_| |_\, | / / / /
=========|_|==============|_/=/_/_/_/
:: Spring Boot :: (v1.4.3.RELEASE)
2017-01-26 23:19:34.210 INFO 9437 --- [ main] mrs.MrsApplication : Starting MrsApplication on zhushenghehongs-MacBook-Air.local with PID 9437 (/Users/kazuanzo/Documents/Reservation/mrs/target/classes started by kazuanzo in /Users/kazuanzo/Documents/Reservation/mrs) 2017-01-26 23:19:34.213 INFO 9437 --- [ main] mrs.MrsApplication : No active profile set, falling back to default profiles: default 2017-01-26 23:19:34.285 INFO 9437 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@71d44a3: startup date [Thu Jan 26 23:19:34 JST 2017]; root of context hierarchy 2017-01-26 23:19:35.201 INFO 9437 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode! 2017-01-26 23:19:35.277 INFO 9437 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode! 2017-01-26 23:19:35.718 INFO 9437 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [class org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$d4aa98e1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2017-01-26 23:19:36.076 INFO 9437 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http) 2017-01-26 23:19:36.092 INFO 9437 --- [ main] o.apache.catalina.core.StandardService : Starting service Tomcat 2017-01-26 23:19:36.093 INFO 9437 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.6 2017-01-26 23:19:36.227 INFO 9437 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2017-01-26 23:19:36.227 INFO 9437 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1946 ms 2017-01-26 23:19:36.275 INFO 9437 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*] 2017-01-26 23:19:36.712 INFO 9437 --- [ main] o.s.jdbc.datasource.init.ScriptUtils : Executing SQL script from URL [file:/Users/kazuanzo/Documents/Reservation/mrs/target/classes/schema.sql] 2017-01-26 23:19:36.925 INFO 9437 --- [ main] o.s.jdbc.datasource.init.ScriptUtils : Executed SQL script from URL [file:/Users/kazuanzo/Documents/Reservation/mrs/target/classes/schema.sql] in 212 ms. 2017-01-26 23:19:36.928 INFO 9437 --- [ main] o.s.jdbc.datasource.init.ScriptUtils : Executing SQL script from URL [file:/Users/kazuanzo/Documents/Reservation/mrs/target/classes/data.sql] 2017-01-26 23:19:36.978 INFO 9437 --- [ main] o.s.jdbc.datasource.init.ScriptUtils : Executed SQL script from URL [file:/Users/kazuanzo/Documents/Reservation/mrs/target/classes/data.sql] in 50 ms. 2017-01-26 23:19:37.185 INFO 9437 --- [ main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default' 2017-01-26 23:19:37.220 INFO 9437 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [ name: default ...] 2017-01-26 23:19:37.347 INFO 9437 --- [ main] org.hibernate.Version : HHH000412: Hibernate Core {5.0.11.Final} 2017-01-26 23:19:37.349 INFO 9437 --- [ main] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found 2017-01-26 23:19:37.351 INFO 9437 --- [ main] org.hibernate.cfg.Environment : HHH000021: Bytecode provider name : javassist 2017-01-26 23:19:37.398 INFO 9437 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.1.Final} 2017-01-26 23:19:37.535 INFO 9437 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect 2017-01-26 23:19:37.860 INFO 9437 --- [ main] o.h.tool.hbm2ddl.SchemaValidator : HHH000229: Running schema validator 2017-01-26 23:19:37.953 INFO 9437 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2017-01-26 23:19:38.602 INFO 9437 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup 2017-01-26 23:19:38.695 INFO 9437 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 2017-01-26 23:19:38.699 INFO 9437 --- [ main] mrs.MrsApplication : Started MrsApplication in 4.994 seconds (JVM running for 5.706)
該当のソースコード
```ここに言語を入力
これがControllerクラスです。
package app;
import java.time.LocalDate;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.format.annotation.DateTimeFormat.ISO;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import model.ReservableRoom;
import service.RoomService;
@Controller
@RequestMapping("rooms")
public class RoomsController {
@Autowired
RoomService roomService;
@RequestMapping(method=RequestMethod.GET)
String listRooms(Model model){
LocalDate today=LocalDate.now();
List<ReservableRoom> rooms=roomService.findReservableRooms(today);
model.addAttribute("date", today);
model.addAttribute("rooms", rooms);
return "room/listRooms";
}
@RequestMapping(value="{date}",method=RequestMethod.GET)
String listRooms(@DateTimeFormat(iso=ISO.DATE)@PathVariable("date")
LocalDate date,Model model){
List<ReservableRoom>rooms=roomService.findReservableRooms(date);
model.addAttribute("rooms",rooms);
return"room/listRooms";
}
}
pomです↓
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mrs</groupId>
<artifactId>mrs</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>mrs</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-solr</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
check解決した方法
+1
私のフォルダ構成が悪かったようです。
@SpringBootApplicationを付けたクラスMrsApplication.javaの
クラスのパッケージ以下に他のクラスを置かないと@ComponentScanされないようでRoomsController.javaが
動かなかったのもそれが原因という事がわかりました。
フォルダ構成を変更したらMappingされるようになりました。
※下記変更フォルダ構成です。
なんとか解決できました。
ご迷惑おかけしました。
ご回答いただいた皆様ありがとうございます。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
パス定義が間違ってませんか?
@RequestMapping("/rooms")
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
(文字数制限に引っかかったので、コンソール出力を、省略しました。)
kazuhihiさんの示された「RoomsController」クラスのコードに間違いはありません。
(小生の場合のクラス名は、解説書のサンプルを流用したので「HeloController」としてます。)
多分STSでコーディングされていると仮定して、kazuhihiさんの「RoomsController」クラスが動く様、各種、ファイルを配置して
http://localhost:8080/rooms
にアクセスして、下記の反応を得ました。
2017-01-30 10:36:41.593 INFO 6972 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet'
2017-01-30 10:36:41.594 INFO 6972 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2017-01-30 10:36:41.705 INFO 6972 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 111 ms
2017-01-30 10:36:42.241 INFO 6972 --- [nio-8080-exec-1] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory
小生のコンソール出力
2017-01-30 10:04:25.527 INFO 4240 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2017-01-30 10:04:28.429 INFO 4240 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@fbca5a: startup date [Mon Jan 30 10:04:08 JST 2017]; root of context hierarchy
2017-01-30 10:04:28.795 INFO 4240 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/rooms],methods=[GET]}" onto java.lang.String com.springboot.HeloController.listRooms(org.springframework.ui.Model)
(略)
2017-01-30 10:04:32.368 INFO 4240 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2017-01-30 10:04:32.715 INFO 4240 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-01-30 10:04:32.738 INFO 4240 --- [ main] com.springboot.MyBootAppApplication : Started MyBootAppApplication in 28.543 seconds (JVM running for 31.779)
2017-01-30 10:36:41.593 INFO 6972 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet'
2017-01-30 10:36:41.594 INFO 6972 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2017-01-30 10:36:41.705 INFO 6972 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 111 ms
2017-01-30 10:36:42.241 INFO 6972 --- [nio-8080-exec-1] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory
kazuhihiさんのコンソール出力
2017-01-26 23:19:37.953 INFO 9437 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2017-01-26 23:19:38.602 INFO 9437 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2017-01-26 23:19:38.695 INFO 9437 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-01-26 23:19:38.699 INFO 9437 --- [ main] mrs.MrsApplication : Started MrsApplication in 4.994 seconds (JVM running for 5.706)
に
2017-01-30 10:04:28.795 INFO 4240 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/rooms],methods=[GET]}" onto java.lang.String com.springboot.HeloController.listRooms(org.springframework.ui.Model)
...
が出ていないので、マッピング環境を成立させる必要が有るのだと思います。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
気になったので同様の状況が再現しないか色々試してみました
「room/listRooms」が「templates」フォルダ以下を指している前提で話しますが、
プロジェクトを新規作成するとき依存関係に「Thymeleaf」を追加し忘れていませんか?
もしされていない場合、プロジェクト直下に存在するpom.xmlを開き、以下のようにdependenciesタグの下にdependencyを追加してください。
<dependencies>
<dependency><!--ここから-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency><!--ここまで-->
</dependencies>
コードには問題が無いはずなのでこれで「templates/room/listRooms.html」のファイルが表示されるようになるはずです。
Thymeleafを用いない場合、resources/staticフォルダに「listRooms.html」を用意し、コントローラの戻り値に「"listRooms.html"」を記述すれば表示されるはずです。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
>修正点はないという事でしょうか?
/roomsに反応しないのですから、環境やコードに不備が有るので、どこか修正点は有ると思います。
それが、何なのか?どこなのか?は、こちらでは分からないです。
「class RoomsController」のみが提示されていますので、こちらとしては、404にならない様
起動時に「Mapped "{[/rooms],methods=[GET]}"」が出力される様、いろいろとTry and errorし、
結果、
「findReservableRooms」の成立コードをTry中に削除したので、今は
controllerを下記の様にDB部分をコメントアウトし、
import java.time.LocalDate;
import java.util.List;
import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.format.annotation.DateTimeFormat.ISO;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.springboot.ReservableRoom;
import com.springboot.repositories.RoomService;
@Controller
@RequestMapping("rooms")
public class HeloController {
@Autowired
RoomService roomService;
@RequestMapping(method = RequestMethod.GET)
String listRooms(Model model) {
LocalDate today = LocalDate.now();
//List<ReservableRoom> rooms = roomService.findReservableRooms(today);
model.addAttribute("date", today);
//model.addAttribute("rooms", rooms);
return "room/listRooms";
}
// @RequestMapping(value = "{date}", method = RequestMethod.GET)
// String listRooms(@DateTimeFormat(iso = ISO.DATE) @PathVariable("date") LocalDate date, Model model) {
// List<ReservableRoom> rooms = roomService.findReservableRooms(date);
// model.addAttribute("rooms", rooms);
// return "room/listRooms";
// }
}
『「Mapped "{[/rooms],methods=[GET]}"」が出力』にフォーカスする為に、pom.xlsは不要なものを削除しています。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>MyBootApp</groupId>
<artifactId>MyBootApp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>MyBootApp</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency><!--ここから -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency><!--ここまで -->
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
加えて、最低限、必要な
「src\main\java\com\springboot」に、
ReservableRoom.java
「src\main\java\com\springboot\repositories」
RoomService.java
「src\main\resources\templates\room」
listRooms.html
を用意し「listRooms.html」の中身が表示されることを確認しています。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
そちらでは、依然として起動時に『「Mapped "{[/rooms],methods=[GET]}"」が出力』されていないのでしょうか?
「ThymleafConfig.java」の中身が分からないので、ふと気になったのですが、
・『Spring徹底入門』のmrsをSpring Boot化しようとされてる。
・「thymeleaf-extras-java8time」は「ThymleafConfig.java」を必要とする。
・Spring Boot化に「spring-boot-starter-thymeleaf」が必要。
→「ThymleafConfig.java」が「spring-boot-starter-thymeleaf」の『「Mapped "{[/rooms],methods=[GET]}"」が出力』を阻害している。
ということが有り得るのかどうか。。。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
404エラーが出る時の確認点は、以下の2つです。
- Controller
Controllerの設定部分を抜粋すると、以下のようになっていますね。
@Controller
@RequestMapping("rooms")
public class RoomsController {
@RequestMapping(method=RequestMethod.GET)
public String listRooms(Model model) {
// 何らかの実装~~~~~
return "room/listRoom";
}
}
これに対するSpringBootの起動ログは、抜粋すると
2017-02-01 13:25:55.899 INFO 7128 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/rooms],methods=[GET]}" onto public java.lang.String com.github.alphapz.controller.RoomsController.listRooms(org.springframework.ui.Model)
のように、設定が正しい場合は、RequestMappingHandlerMapping : Mapped "{[/rooms],methods=[GET]}" つまり、RequestMappingHandlerが、対象のパスとHTTPメソッドを起動時のログに出力しますのでこれを確認してください。これが出ていない場合は何らかの設定ミスがあります。
- Controllerからのreturn値→Thymeleafの指定方法
これに対し、return で "room/listRoom" を指定していますので、表示するThymeleafテンプレートは以下の場所に配置したものを表示します。
src/main/resources/templates/room/listRoom.html
Thymeleafはテンプレートエンジンで、SpringBootのデフォルト設定では、resources/templates/ 以下にあるファイルを対象にしています。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.22%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
koronatail
2017/01/27 11:47
http://localhost:8080/roomsにアクセスして404がでたタイミングでコンソールにエラーメッセージなどはでていないでしょうか。
kazuhihi
2017/01/29 22:14
出ておりません。
kazuhihi
2017/01/30 22:10
すいません!!下記エラーが出ました。2017-01-30 22:06:09.238 INFO 12515 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet' 2017-01-30 22:06:09.239 INFO 12515 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started 2017-01-30 22:06:09.258 INFO 12515 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 19 ms