在 Ktor 0.9.3 中导入另一个配置文件会引发异常

Posted

技术标签:

【中文标题】在 Ktor 0.9.3 中导入另一个配置文件会引发异常【英文标题】:Importing another configuration file in Ktor 0.9.3 throws exception 【发布时间】:2019-01-18 19:12:47 【问题描述】:

在 Ktor 0.9.3 应用程序中,我希望为不同的环境提供不同的 .conf 文件,我在其中扩展了一个主要的 .conf 文件。但是,我收到以下异常:

Exception in thread "main" com.typesafe.config.ConfigException$NotResolved: called valueType() on value with unresolved substitutions, need to Config#resolve() first, see API docs
    at com.typesafe.config.impl.ConfigDelayedMerge.valueType(ConfigDelayedMerge.java:46)
    at com.typesafe.config.impl.SimpleConfig.hasPath(SimpleConfig.java:96)
    at io.ktor.config.HoconApplicationConfigKt.tryGetString(HoconApplicationConfig.kt:33)
    at io.ktor.server.engine.CommandLineKt$commandLineEnvironment$environment$1.invoke(CommandLine.kt:64)
    at io.ktor.server.engine.CommandLineKt$commandLineEnvironment$environment$1.invoke(CommandLine.kt)
    at io.ktor.server.engine.ApplicationEngineEnvironmentBuilder.build(ApplicationEngineEnvironment.kt:55)
    at io.ktor.server.engine.ApplicationEngineEnvironmentKt.applicationEngineEnvironment(ApplicationEngineEnvironment.kt:38)
    at io.ktor.server.engine.CommandLineKt.commandLineEnvironment(CommandLine.kt:50)
    at io.ktor.server.netty.DevelopmentEngine.main(DevelopmentEngine.kt:13)
    at ApplicationKt.main(application.kt:24)

这是我的application.conf 文件:

ktor 
    deployment 
        port = 8080
        port = $?PORT
        watch = [ website ]
    
    application 
        modules = [ ApplicationKt.module ]
    


ui 
  hotreload 
    enabled = false
    path-prefix = "http://localhost:3000"
  

以及我想使用的扩展它:

include "application.conf"

ui.hotreload.enabled = true

任何想法出了什么问题以及如何解决它?

【问题讨论】:

如何在 ktor pls 中使用多个配置文件?我想在每个环境中使用一个。 【参考方案1】:

根据我在Ktor's GitHub 页面上打开的问题,这是一个已知的错误,PR fixing it 已经被合并,所以它应该在下一个版本中修复。事实上,它在版本0.9.4-alpha-2中按预期工作

【讨论】:

以上是关于在 Ktor 0.9.3 中导入另一个配置文件会引发异常的主要内容,如果未能解决你的问题,请参考以下文章

iOS如何在当前工程中导入另一个工程文件

mysql数据库之间的转移: 怎么把一个mysql数据库服务器中导入另一个mysql服务器呢?

Ktor application.conf - Jwt 配置

是否可以在 android studio 中打开或配置 ktor 项目

allegro把formate symbol文件从一个文件拷入另一个文件的方法

如何在 Ktor 中列出配置的路由