Я пытаюсь создать простое приложение kotlin + dropwizard.
Я следил за информацией в Интернете, включая эту https://dev.to/tagmg/step-by-step-guide-to-building-web-api-with-kotlin-and-dropwizard
Так что после некоторых модификаций я создал приложение со сборкой.gradle.kts как это:
plugins {
application
kotlin("jvm")
id("com.github.johnrengelman.shadow") version "4.0.3"
}
application {
mainClassName = "path.MyApplication"
}
dependencies {
implementation("... dependencies ...")
}
val shadowJar: ShadowJar by tasks
shadowJar.apply {
mergeServiceFiles()
manifest.attributes.apply {
put("Main-Class", application.mainClassName)
}
}
tasks.named<JavaExec>("run") {
args("server", "local.yml")
}
В MyApplication у меня есть что-то вроде этого:
класс MyApplication: Application () {
companion object {
@JvmStatic fun main(args: Array<String>) {
MyApplication().run(*args)
}
}
override fun run(configuration: MyConfiguration, environment: Environment) {
val myResource = MyResource() //endpoints with dropwizard
environment.jersey().register(myResource)
}
}
И в MyConfiguration
class MyConfiguration(val serviceName: String
) : Configuration(){
}
Проблема ...
Когда я запускаю gradlew, я получаю эту ошибку:
* Failed to parse configuration; Cannot construct instance of `MyConfiguration` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator)
at [Source: UNKNOWN; line: -1, column: -1]
Я серьезно не знаю, почему эта ошибка или если что-то происходитмой local.yml
мой файл local.yml имеет следующее:
serviceName: Kotlin Calculator
Ирония заключается в том, что когда я изменяю: for =, мое приложение запускается.
Есть идеи, что с этим не так?