我刚开始使用Micronaut,但无法获得一个简单的endpoint来工作。我得到http://localhost:8901/game_compositions/
的响应
{
"message": "Page Not Found",
"_links": {
"self": {
"href": "/game_compositions/",
"templated": false
}
}
}
我在这里看到了一些关于同样的回答的其他问题,但没有一个对我有帮助。我已经为我的构建激活了注释处理器,并且我不返回NULL。
我想我犯了一个简单愚蠢错误,但我找不到。根据示例项目,我似乎拥有了我所需要的一切。
这是我的项目:
控制器:
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")
}
}
build.gradle(大部分是从https://micronaut.io/launch/site自动生成的,所以对于一个简单的服务来说可能有一些不必要的东西。请随意指出)
plugins {
id("io.micronaut.application") version "1.2.0"
kotlin("jvm") version "1.4.10"
kotlin("kapt") version "1.4.10"
kotlin("plugin.allopen") version "1.4.10"
}
version = "0.1"
group = "com.example.backend"
val kotlinVersion=project.properties.get("kotlinVersion")
repositories {
mavenCentral()
jcenter()
}
micronaut {
runtime("netty")
testRuntime("junit5")
processing {
incremental(true)
annotations("com.example.backend.*")
}
}
dependencies {
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")
runtimeOnly("org.mariadb.jdbc:mariadb-java-client")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlinVersion}")
implementation("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
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("14")
}
tasks {
compileKotlin {
kotlinOptions {
jvmTarget = "14"
}
}
compileTestKotlin {
kotlinOptions {
jvmTarget = "14"
}
}
}
application.yml(数据库连接到目前为止尚未使用,未经测试)
Micronaut:应用程序:名称:后端服务器:端口:8901
数据源:默认值:URL:jdbc:mysql://localhost:3306/db用户名:root密码:root driver-class-name:org.mariadb.jdbc.driver
JPA:default:properties:hibernate:hbm2ddl:auto:none show_sql:true
感谢Jeff Scott Brown的评论,我已经能够确定插件的顺序是问题所在。我不知道在格雷德尔的顺序是重要的。显然Micronaut需要首先添加kapt插件。任何对此有更多洞察力的人都欢迎发表一个更好的答案,对我来说,它工作改变了我的分级文件的开始如下:
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"
}
编辑:一个重要的注意,如果任何人试图使用我的分级文件。结果kapt不支持Java 14,这给我造成了一些很难找到的麻烦。这是我目前的工作级文件:
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"
}
}
}
我们收到很多404页面未找到的错误,我们找不到相同模式的原因。我们没有对此404页面进行任何重定向,或者我们没有在任何地方为这个损坏的页面链接提供链接。 这种错误的共同点部分以相同的模式进行处理;删除网址的第一段。示例; 这是真正的URL; site.com/category/news/title-of-the-content 网站.com/another-category/news/anothe
我正在尝试将 Android 应用程序的 build.gradle 文件转换为 Kotlin DSL。此文件具有如下函数: 我将其转换为: 我得到一个错误,并应用将其更改为显示一个错误。 我做错了什么吗?提前感谢。
我尝试使用Kotlin脚本将我的一个项目迁移到Gradle。 以下是我的步骤: 用这个替换 将gradle/包装器/gradle-wrapper.properties的更新为与此处相同 创建了相应的 设置到 此时Intellij检测到它并建议: 您可以将Gradle包装器配置为对源使用分发。它将为IDE提供Gradle API/DSL留档。 - gradle'hello-kotlin'项目刷新失败
我在弹出窗口有联系表,但当我点击发送按钮时,我没有找到页面,而不是将我重定向到主页。 这是我的路线 HomeC中的功能ontroller.php 表单打开和关闭标签是 当我点击提交我有 为什么要在应该重新加载主页时尝试加载此URL? 用表格更新 更新2:发送邮件功能
我使用mn create-app example.micronaut.complete创建了一个新的micronaut应用程序 之后,我使用intellij打开了项目,并将一个新类作为TestController添加到项目中,代码如下: 但我得到了
我已经看了所有其他对此的反应,但它们似乎不适用于我。 https://kotlinlang.org/api/latest/kotlin.test/kotlin.test/ 我正在尝试从暂存文件或.kt文件访问它,并且它不在下拉列表中以选择它。 项目正在使用JDK 15。