2017-01-27 4 views
0

動的起動WebコンテンツにSpring起動tutorialを基にして、私はKotlinでも同じことをしたかったのです。私のKotlinプロジェクトはこれに基づいていますtutorial。両方のチュートリアルのコードを実行しても問題はありません。SpringブートとKotlinで動的Webコンテンツを配信できない

私の理解では、テンプレートへの参照を返すコントローラを追加するだけでした。

ここHelloController.kt(SRC /メイン/ kotlin/fooの/コントローラの下にあります):ここで

package foo.controller 

import org.slf4j.LoggerFactory 
import org.springframework.stereotype.Controller 
import org.springframework.web.bind.annotation.RequestMapping 

@Controller 
class HelloController { 

    private val log = LoggerFactory.getLogger(HelloController::class.java) 

    @RequestMapping("/") 
    fun hello(): String { 
     log.info("foo") 
     return "index" 
    } 
} 

は、私は(/ srcに/メイン/リソースの下に位置しアクセスできるようにする簡単な "テンプレート"、index.htmlですテンプレート/ index.htmlを):

<html> 
<head> 
</head> 
<body> 
Bar 
</body> 
</html> 

私はlocalhost:8080に行くのであれば、技術的に、私はそうでないindex.htmlを表示している必要があります。代わりに私は404エラーがあります。私はhelloメソッドが呼び出されるようにログを表示しています。私は間違って何をしていますか?私はSpringブートチュートリアルで設定ファイルが見つからなかったので、Springが関数が返すものから正しいressourceを得るために何かをやっていると思います。

EDIT:

は私のgraddleの輸入を要求しました:

buildscript { 
    val springBootVersion = "1.4.3.RELEASE" 
    val kotlinVersion = "1.0.6" 
    extra["kotlinVersion"] = kotlinVersion 

    repositories { 
     mavenCentral() 
    } 

    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion") 
     classpath("org.jetbrains.kotlin:kotlin-noarg:$kotlinVersion") 
     classpath("org.jetbrains.kotlin:kotlin-allopen:$kotlinVersion") 
     classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") 
    } 
} 

apply { 
    plugin("kotlin") 
    plugin("kotlin-spring") 
    plugin("kotlin-jpa") 
    plugin("org.springframework.boot") 
} 

version = "0.0.1-SNAPSHOT" 

configure<JavaPluginConvention> { 
    setSourceCompatibility(1.8) 
    setTargetCompatibility(1.8) 
} 

repositories { 
    mavenCentral() 
} 

val kotlinVersion = extra["kotlinVersion"] as String 

dependencies { 
    compile("org.springframework.boot:spring-boot-starter-web") 
    compile("org.springframework.boot:spring-boot-starter-data-jpa") 
    compile("com.h2database:h2") 
    compile("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion") 
    compile("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion") 
    compile("org.apache.commons:commons-io:1.3.2") 
    compile("org.apache.commons:commons-lang3:3.3.1") 
    testCompile("org.springframework.boot:spring-boot-starter-test") 
} 
+0

ここにあなたのgradle/maven依存関係を投稿してください。 – Januson

+0

私は問題をすべてのファイルを追加しましたが、それほど明白ではありませんでした(そして私は完全にぼんやりとしています:p) – Flanfl

答えて

1

spring-boot-starter-web依存関係が解決セットアップビューには十分ではありませんように私は見えます。 spring-boot-starter-thymeleafの依存関係を追加し、Thymeleafはhtmlファイルを処理する必要があります。

compile("org.springframework.boot:spring-boot-starter-thymeleaf") 

あなたのHTMLファイルがsrc/main/resources/templatesであるべきか、それらを自動的に検出されないことがあります。

+0

それは本当に簡単でした!私はdepedencyを追加し、うまくいった。どうもありがとう! – Flanfl

関連する問題