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

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

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

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

IntelliJ IDEA

IntelliJ IDEA(インテリジェイ アイディア)は、JetBrains社が開発した、 JavaやScalaなどで利用される統合開発環境です。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Spring Boot

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

Q&A

解決済

1回答

2806閲覧

SpringBootのチュートリアルでエラー発生しました

mi-ko-cute

総合スコア5

Java

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

IntelliJ IDEA

IntelliJ IDEA(インテリジェイ アイディア)は、JetBrains社が開発した、 JavaやScalaなどで利用される統合開発環境です。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Spring Boot

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

0グッド

0クリップ

投稿2020/01/26 10:39

編集2020/01/26 13:12

前提・実現したいこと

現在業務で、JavaのフレームワークであるSpring Bootを利用して、Webアプリケーションの開発をしています。
概要を理解するため、Spring bootの公式ページのチュートリアルを参照しながら簡単なブログを作成しようとしました。

https://spring.io/guides/tutorials/spring-boot-kotlin/

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

上記チュートリアルでWriting your first Kotlin controller までソースコードを記載していたのですが、以下の記載に従いメイン関数を実行して、アプリケーションを立ち上げ、localhostに接続しようとしたところ、404エラーが返ってきてしまいました。

Start the web application by running the main function of BlogApplication.kt, and go to http://localhost:8080/, you should see a sober web page with a "Blog" headline.

エラーメッセージ

This application has no explicit mapping for /error, so you are seeing this as a fallback. Sun Jan 26 18:42:45 GMT+09:00 2020 There was an unexpected error (type=Not Found, status=404). No message available

該当のソースコード

BlogApplication

1package com.example.blog 2 3import org.springframework.boot.autoconfigure.SpringBootApplication 4import org.springframework.boot.runApplication 5 6@SpringBootApplication 7class BlogApplication 8 9fun main(args: Array<String>) { 10 runApplication<BlogApplication>(*args) 11} 12

HtmlController

1package com.example.blog.controller 2 3import org.springframework.stereotype.Controller 4import org.springframework.ui.Model 5import org.springframework.ui.set 6import org.springframework.web.bind.annotation.GetMapping 7 8@Controller 9class HtmlController { 10 11 @GetMapping("/") 12 fun blog(model: Model): String { 13 model["title"] = "Blog" 14 return "blog" 15 } 16 17}

試したこと

こちらのStackoverflowの質問を参考にして、メインクラスがコントローラーファイルより上にくるフォルダ構成でなくてはならないということでしたので、メインクラスとコントローラーファイルを以下の構成にし直しました。

  • メインクラス → com/example/blog/BlogApplication.kt
  • コントローラファイル → com/example/blog/controller/HtmlController.kt

イメージ説明

しかし、エラーは解消していません。

補足情報(FW/ツールのバージョンなど)

どういったツールのバージョンを載せればよいのかわからないため、プラグイン等のバージョンが記載されているbuild.gradle.ktsのコードを載せておきます。

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("org.springframework.boot") version "2.2.4.RELEASE" id("io.spring.dependency-management") version "1.0.9.RELEASE" kotlin("jvm") version "1.3.61" kotlin("plugin.spring") version "1.3.61" kotlin("plugin.jpa") version "1.3.61" } group = "com.example" version = "0.0.1-SNAPSHOT" java.sourceCompatibility = JavaVersion.VERSION_1_8 val developmentOnly by configurations.creating configurations { runtimeClasspath { extendsFrom(developmentOnly) } } repositories { mavenCentral() } dependencies { implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("org.springframework.boot:spring-boot-starter-mustache") implementation("org.springframework.boot:spring-boot-starter-web") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") developmentOnly("org.springframework.boot:spring-boot-devtools") runtimeOnly("com.h2database:h2") testImplementation("org.springframework.boot:spring-boot-starter-test") { exclude(group = "org.junit.vintage", module = "junit-vintage-engine") } } tasks.withType<Test> { useJUnitPlatform() } tasks.withType<KotlinCompile> { kotlinOptions { freeCompilerArgs = listOf("-Xjsr305=strict") jvmTarget = "1.8" } }

初めての質問で抽象的になってしまい申し訳ありません。
どうかよろしくお願いします。

###追記(2019/1/26)

####blog.htmlファイルはテンプレートフォルダに存在しています。
blog.html

####コンソールに出力されるログ
コンソールログ

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/01/26 11:10

Propertyファイルは? ※ DBの接続設定してないから落ちてると思うが
mi-ko-cute

2020/01/26 12:05 編集

Propertyファイルとはどういったファイルを指しているのでしょうか? application.propertiesのことですか
guest

回答1

0

ベストアンサー

java

1 @GetMapping("/") 2 fun blog(model: Model): String { 3 ... 4 return "blog" 5 }

ということなので、blog.htmlは存在してますか?src/main/resources/templates/blog.htmlファイルは。

# コメント欄でのやり取りをもとに、訂正しておきます。

blog.mustacheは存在してますか?src/main/resources/templates/blog.mustacheファイルは。

投稿2020/01/26 11:44

編集2020/01/27 12:06
shiketa

総合スコア3971

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mi-ko-cute

2020/01/26 12:04 編集

ご回答ありがとうございます。 src/main/resources/templates/blog.htmlは存在していますが、localhostでページが表示されません。 本文に情報を追記いたしました。
shiketa

2020/01/26 12:19

asahina1979さんが書かれていますが、database周りの設定はされてますか?もし、まだdatabaseが不要なのであれば、`build.gradle`から`jpa`の設定を一時的に外してみてはどうでしょうか。
mi-ko-cute

2020/01/26 12:41 編集

`build.gradle`から`jpa`の設定を外してみたのですが、やはりblog.htmlが表示できません。 データベースの設定方法が分かっていないので、自力で少し調べてみます。
shiketa

2020/01/26 12:48

よく考えてみれば、404が返されるということは、サーバは起動されているんですもんね。database周りの問題であれば起動できないと思うので…。 localhost:8080にアクセスしたときの、サーバ側のログがあると、また別の回答をもらえるかもしれません。
mi-ko-cute

2020/01/26 13:06

404エラーは存在しないページにアクセスしたときに返されるエラーですよね。 そうしたら、ルーティング処理の記載が誤っていることなのでしょうか サーバ側のログについては、上記『発生している問題・エラーメッセージ』にも記載していますが、 `This application has no explicit mapping for /error, so you are seeing this as a fallback.` というメッセージになります。 後要らないかと思いますが、アプリケーションを立ち上げるときにコンソールに出力されるログについても本文に記載しておきます。
shiketa

2020/01/26 13:33

Writing your first Kotlin controllerのページを追って読んでみてわかった気がします。 `src/main/resources/templates/blog.html`ではなく、`src/main/resources/templates/blog.mustache`ですね。拡張子が違う。header, footerも同様。 # わたしはテンプレートエンジンをmustacheではなくthymeleafのつもりでblog.htmlと書いてしまいました。すいません。
mi-ko-cute

2020/01/26 14:13

拡張子を`mustache`に直し、mustancheのプラグインを入れて再実行しましたら、無事にwebページを表示することができました! この度は丁寧にご教授いただきありがとうございます。助かりました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問