使用micronaut、Gradle和Kotlin未找到页面消息
我刚开始使用Micronaut,但我无法使用一个简单的端点。我在使用micronaut、Gradle和Kotlin未找到页面消息,kotlin,micronaut,Kotlin,Micronaut,我刚开始使用Micronaut,但我无法使用一个简单的端点。我在http://localhost:8901/game_compositions/ { "message": "Page Not Found", "_links": { "self": { "href": "/game_compositions/", "templat
http://localhost:8901/game_compositions/
{
"message": "Page Not Found",
"_links": {
"self": {
"href": "/game_compositions/",
"templated": false
}
}
}
我在这里看到了一些关于相同回答的其他问题,但没有一个对我有帮助。我的身材和身材都很好
我想我犯了一些简单愚蠢的错误,但我找不到。根据样本项目,我似乎拥有了我所需要的一切
这是我的项目:
控制器:
import io.micronaut.http.MediaType
import io.micronaut.http.annotation.Controller
import io.micronaut.http.annotation.Get
import io.micronaut.http.annotation.Produces
@Controller("/game_compositions")
class CompositionsController {
@Produces(MediaType.APPLICATION_JSON)
@Get(uri = "/")
fun getCompositions(): Iterable<String> {
return listOf("something")
}
}
Application.yml(数据库连接尚未测试)
micronaut:
应用程序:
名称:后端
服务器:
港口:8901
数据源:
违约:
url:jdbc:mysql://localhost:3306/db
用户名:root
密码:root
驱动程序类名:org.mariadb.jdbc.driver
jpa:
违约:
特性:
冬眠:
hbm2ddl:
自动:无
show_sql:true感谢Jeff Scott Brown的评论,我已经能够确定插件的顺序是问题所在。我不知道这个命令在格拉德尔很重要。显然,Micronaut要求首先添加kapt插件。欢迎对此有更多见解的人发布更好的答案,对我来说,将gradle文件的开头改为以下内容很有效:
plugins {
kotlin("jvm") version "1.4.10"
kotlin("kapt") version "1.4.10"
id("io.micronaut.application") version "1.2.0"
kotlin("plugin.allopen") version "1.4.10"
}
编辑:如果有人试图使用我的gradle文件,这是一个重要提示。事实证明kapt不支持Java14,这给我带来了一些很难找到的麻烦。这是我当前的工作梯度文件:
plugins {
kotlin("jvm") version "1.4.10"
kotlin("kapt") version "1.4.10"
kotlin("plugin.allopen") version "1.4.10"
kotlin("plugin.jpa") version "1.4.10"
id("io.micronaut.application") version "1.2.0"
}
version = "0.1"
group = "com.example.backend"
val kotlinVersion: String by project
repositories {
mavenCentral()
jcenter()
}
micronaut {
runtime("netty")
testRuntime("junit5")
processing {
incremental(true)
annotations("com.example.backend.*")
}
}
dependencies {
annotationProcessor("io.micronaut.data:micronaut-data-processor")
implementation("io.micronaut:micronaut-validation")
implementation("io.micronaut.kotlin:micronaut-kotlin-runtime")
implementation("io.micronaut:micronaut-runtime")
implementation("io.micronaut.sql:micronaut-jdbc-hikari")
implementation("io.micronaut.sql:micronaut-hibernate-jpa")
implementation("io.micronaut.data:micronaut-data-hibernate-jpa")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlinVersion}")
implementation("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
runtimeOnly("org.mariadb.jdbc:mariadb-java-client")
runtimeOnly("ch.qos.logback:logback-classic")
runtimeOnly("com.fasterxml.jackson.module:jackson-module-kotlin")
}
application {
mainClass.set("com.example.backend.ApplicationKt")
}
java {
sourceCompatibility = JavaVersion.toVersion("11")
}
tasks {
compileKotlin {
kotlinOptions {
jvmTarget = "11"
}
}
compileTestKotlin {
kotlinOptions {
jvmTarget = "11"
}
}
}
请参阅上的项目。似乎有效。您是否可以向该项目发送PR来演示问题,或者共享一些代码来帮助解决问题?如果它看起来像一个bug,请在报告,我们可以进行调查。@JeffScottBrown非常感谢,这个例子让我可以一步一步地比较,结果证明插件的顺序是问题所在。我不知道这在格拉德尔很重要。如果你写一个答案,我会接受,因为这是基于你的评论:)我很高兴你找到了答案。做得好!
plugins {
kotlin("jvm") version "1.4.10"
kotlin("kapt") version "1.4.10"
kotlin("plugin.allopen") version "1.4.10"
kotlin("plugin.jpa") version "1.4.10"
id("io.micronaut.application") version "1.2.0"
}
version = "0.1"
group = "com.example.backend"
val kotlinVersion: String by project
repositories {
mavenCentral()
jcenter()
}
micronaut {
runtime("netty")
testRuntime("junit5")
processing {
incremental(true)
annotations("com.example.backend.*")
}
}
dependencies {
annotationProcessor("io.micronaut.data:micronaut-data-processor")
implementation("io.micronaut:micronaut-validation")
implementation("io.micronaut.kotlin:micronaut-kotlin-runtime")
implementation("io.micronaut:micronaut-runtime")
implementation("io.micronaut.sql:micronaut-jdbc-hikari")
implementation("io.micronaut.sql:micronaut-hibernate-jpa")
implementation("io.micronaut.data:micronaut-data-hibernate-jpa")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlinVersion}")
implementation("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
runtimeOnly("org.mariadb.jdbc:mariadb-java-client")
runtimeOnly("ch.qos.logback:logback-classic")
runtimeOnly("com.fasterxml.jackson.module:jackson-module-kotlin")
}
application {
mainClass.set("com.example.backend.ApplicationKt")
}
java {
sourceCompatibility = JavaVersion.toVersion("11")
}
tasks {
compileKotlin {
kotlinOptions {
jvmTarget = "11"
}
}
compileTestKotlin {
kotlinOptions {
jvmTarget = "11"
}
}
}