【问题标题】:ktor running fat jar throws java.lang.UnsupportedOperationException::Packages and file facades are not yet supported in Kotlin reflection运行 fat jar 的 ktor 抛出 java.lang.UnsupportedOperationException::Kotlin 反射中尚不支持包和文件外观
【发布时间】:2019-06-14 10:03:57
【问题描述】:

下面是从 IDE 正常运行的基本 ktor 文件,但我使用“mvn install”创建了一个胖 jar 文件,运行它会引发以下异常:

线程“main”java.lang.UnsupportedOperationException 中的异常:Kotlin 反射尚不支持包和文件外观。同时请使用Java反射检查这个类:class com.tech.ApplicationKt

fun main(args: Array<String>){
    embeddedServer(Netty, 8080){
        routing{
            get("/demo"){
                call.respondText("Hello demo")
            }
        }
    }.start(wait = true)
}

我尝试在 Java 11 和 8 上执行 jar,但遇到了同样的异常。

【问题讨论】:

  • 您使用的是什么版本的 ktor?甚至可以向我们展示您的构建。

标签: kotlin ktor


【解决方案1】:

我刚刚按照 ktor.io 上的官方指南进行了尝试,以使用 maven 进行设置。

之后我关注https://ktor.io/servers/deploy/packing/fatjar.html#fat-jar-maven 进行 jar 编译。

我遇到了 2 个问题:

  1. 我首先尝试了 IntelliJ Maven 侧栏中的 install:install 任务,但实际上您必须使用生命周期方法 install 或仅使用 package
  2. 我必须调整 maven 程序集插件的 mainClass 属性以匹配我自己的属性,例如 path.to.your.package.ServerKt 或任何您调用的文件。

一旦我修复了这两个,一切正常。

如果您仍有问题,请向我们展示您的构建文件。

【讨论】:

  • 在maven组装插件中调整mainClass后工作正常。感谢您指出这一点。
猜你喜欢
  • 2019-09-19
  • 2011-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-29
  • 2014-11-15
  • 1970-01-01
相关资源
最近更新 更多