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

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

ただいまの
回答率

91.80%

  • Spring Boot

    188questions

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

Spring起動→サーバーアクセス反応なし

解決済

回答 7

投稿 2017/01/26 23:22 ・編集 2017/01/31 22:37

  • 評価
  • クリップ 0
  • VIEW 552

kazuhihi

score 11

イメージ説明
※フォルダ構成です。

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ページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 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

    キャンセル

回答 7

check解決した方法

+1

私のフォルダ構成が悪かったようです。
@SpringBootApplicationを付けたクラスMrsApplication.javaの
クラスのパッケージ以下に他のクラスを置かないと@ComponentScanされないようでRoomsController.javaが
動かなかったのもそれが原因という事がわかりました。
フォルダ構成を変更したらMappingされるようになりました。

※下記変更フォルダ構成です。

![イメージ説明]

なんとか解決できました。
ご迷惑おかけしました。
ご回答いただいた皆様ありがとうございます。

投稿 2017/02/02 23:30

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

0

パス定義が間違ってませんか?

@RequestMapping("/rooms")

投稿 2017/01/29 00:34

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2017/01/29 22:15

    パス定義を変更してもダメでした。

    キャンセル

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)
...


が出ていないので、マッピング環境を成立させる必要が有るのだと思います。

投稿 2017/01/30 11:08

編集 2017/01/30 12:36

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2017/01/30 22:24

    マッピング環境を成立するにはどうすればよろしいでしょうか?

    キャンセル

  • 2017/01/31 07:08

    koronatailさんの言われる様にpom.xmlを修正したら、https://teratail.com/questions/40034:「あと、pom.xmlを修正したら・maven、プロジェクトの更新・run、clear・run install」を実行し、エラー無く、「target」内に mrsjar-0.0.1-SNAPSHOT.jarが作成される必要があります。これで、「Maven依存関係」にthymleaf-spring4-...、thymleaf-...が入ってくるはずです。上記.jarを表示させる為には、プロジェクトをリフレッシュして下さい。(小生のSTSは日本語化してありますので、適時英語に戻して読み替えてください。)

    キャンセル

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"」を記述すれば表示されるはずです。

投稿 2017/01/30 15:13

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2017/01/30 22:23

    対応したのですがうまくいきませんでした。
    404のエラーが出ました。

    キャンセル

  • 2017/01/30 22:25

    なにも変化がなかったということでしょうか。
    pom.xmlとプロジェクトとフォルダ構成を教えて下さい

    キャンセル

  • 2017/01/30 22:41

    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>
    </dependency>
    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-jpamodelgen</artifactId>
    </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-tomcat</artifactId>
    <scope>provided</scope>
    </dependency>
    <dependency><!--ここから-->
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency><!--ここまで-->
    <dependency>
    <groupId>net.sourceforge.htmlunit</groupId>
    <artifactId>htmlunit</artifactId>
    </dependency>
    </dependencies>

    <build>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    </plugins>
    </build>


    </project>

    キャンセル

  • 2017/01/30 22:47

    フォルダ構成追加しました。

    キャンセル

  • 2017/01/31 10:59 編集

    「/error」へのマッピングが出力されたので「spring-boot-starter-thymeleaf」が効いたのだと思います。★★★誤→『が、「thymeleaf-extras-java8time」が気になります。『Spring徹底入門』のmrsをSpring Boot化しようとされていませんか?STSにて「thymeleaf-extras-java8time」がimport出来ずにエラーになりましたので。。。ThymleafConfig.javaの中身も気になりますし、「thymeleaf-extras-java8time」→「spring-boot-starter-thymeleaf」化しないと、動かないのではと思い始めてます。』←誤★★★

    キャンセル

  • 2017/01/31 11:02 編集

    ★★★実証結果→「「thymeleaf-extras-java8time 2.1.0」がimport出来て、小生の環境では、起動時「Mapped "{[/rooms],methods=[GET]}"」が出力されて、「/rooms」が開きました。

    キャンセル

  • 2017/01/31 20:05

    修正点はないという事でしょうか?

    キャンセル

  • 2017/02/01 12:18

    間が空いてしまいましたがHouraijiIC様が回答してくださっているので私からは確認だけ・・。
    参考にされている書籍を見たことが無く、質問でのせていただいたコードがどれくらい手の加えられているものなのかわからないですが、単にコピペだけした段階では動いていたのでしょうか?
    ThymleafConfig.java等何をしているのか気になるファイルもあるのでもうすこし情報がほしいです。
    恐らくControllerに不備は無いので、最悪は一旦プロジェクトをコピーした上で機能を少しずつ削って問題を切り分ける必要があるかもしれません・・・。(DB接続機能を削ってpomからmysqlも消す、htmlの内容をhello worldレベルのものだけにしてpomからthymeleaf-extras-java8timeも消す等々)

    キャンセル

  • 2017/02/01 12:34

    kazuhihiさんが『Spring徹底入門』を参考にされているのか、ご本人様から回答がないので不明です。「findReservableRooms(today)」でぐぐると、「Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発」-「https://books.google.co.jp/books?id=7TesDAAAQBAJ&pg=PA655&lpg=PA655&dq=findReservableRooms(today)&source=bl&ots=_VxtLUn0dd&sig=p-pkfC866wF7Qp7H-eCkV81A6jM&hl=ja&sa=X&ved=0ahUKEwjtwb2M-u3RAhXBgLwKHUFNCGMQ6AEIGjAA#v=onepage&q=findReservableRooms(today)&f=false」なページに辿り付くので、小生が勝手に推測して書いているだけです。

    キャンセル

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」の中身が表示されることを確認しています。

投稿 2017/02/01 07:18

編集 2017/02/01 07:26

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

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]}"」が出力』を阻害している。

ということが有り得るのかどうか。。。

投稿 2017/02/01 07:40

編集 2017/02/01 07:58

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

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/ 以下にあるファイルを対象にしています。

投稿 2017/02/01 13:33

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

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

ただいまの回答率

91.80%

関連した質問

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

  • Spring Boot

    188questions

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

閲覧数の多いSpring Bootの質問