- 使用Ktor开发服务端,启动时报错:
Exception in thread "main" java.lang.ClassNotFoundException: Module function cannot be found for the fully qualified name 'ApplicationKt.module'
at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.executeModuleFunction(ApplicationEngineEnvironmentReloading.kt:324)
at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.instantiateAndConfigureApplication(ApplicationEngineEnvironmentReloading.kt:275)
at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.createApplication(ApplicationEngineEnvironmentReloading.kt:127)
at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.start(ApplicationEngineEnvironmentReloading.kt:247)
at io.ktor.server.netty.NettyApplicationEngine.start(NettyApplicationEngine.kt:106)
at io.ktor.server.netty.NettyApplicationEngine.start(NettyApplicationEngine.kt:18)
at io.ktor.server.engine.ApplicationEngine$DefaultImpls.start$default(ApplicationEngine.kt:52)
at io.ktor.server.netty.EngineMain.main(EngineMain.kt:17)
at com.cxyzy.ktor.demo.ApplicationKt.main(Application.kt:19)
- application.conf文件内容:
ktor {
deployment {
port = 8080
port = ${?PORT}
watch = [ "kotlin-ktor-mongo-sample" ]
}
application {
modules = [ ApplicationKt.module ]
}
}
mongo {
connectionString = "mongodb://127.0.0.1:27017/test"
}
问题原因
之前启动类Application.kt是没有包名的,我挪动了一下,增加了包名.
解决方案修改application.conf中modules的路径,修改为:
application {
modules = [ com.cxyzy.ktor.demo.ApplicationKt.module ]
}
点击关注专栏,查看最新技术分享 更多技术总结好文,请关注:「程序园中猿」