【问题标题】:config.ConfigException$Missing: No configuration setting found for key 'dev' -- scalaconfig.ConfigException$Missing:没有找到键“dev”的配置设置——scala
【发布时间】:2017-09-25 18:52:17
【问题描述】:

我正在尝试使用 Scala 进行一些简单的数据库操作。我的代码连接到 mysql 服务器的位置。

我在 application.properties 文件中定义了数据库详细信息,但在运行时出现此错误

config.ConfigException$Missing: No configuration setting found for key 'dev'

我检查了所有可能的选项,但可以找到问题所在,有人可以帮我解决这个问题吗?

parsedConfig = ConfigFactory.parseFile(new File("src/main/resources/application.properties"))
    val prop = ConfigFactory.load(parsedConfig)
    val driver = "com.mysql.jdbc.Driver"
    val url = s"jdbc:mysql://" + prop.getConfig("dev").getString("host") +
              "/" + prop.getConfig("dev").getString("db")
    val user = prop.getConfig("dev").getString("user")
    val password = prop.getConfig("dev").getString("pw")

application.properties

dev.host=localhost
dev.db=retail_db
dev.user=root

【问题讨论】:

  • 你试过prop.getConfig("dev.host")吗?
  • 或者prop.getConfigObject("dev").getConfig("host")
  • 是的,我尝试了 dev.host,没有工作在 scala 类型安全配置中没有这样的 getConfigObject

标签: java scala bigdata


【解决方案1】:

要使用标准名称(即“application.{properties|conf}”)访问标准位置的资源文件,只需编写:

val prop = ConfigFactory.load()

找不到您的配置文件的一个原因可能是您有一个多模块项目并尝试访问子项目中的配置文件。然后你必须在子项目的目录名称前面加上。

顺便说一句。一般来说,代码不应该访问文件 src/main/resources 因为当您在 IDE 之外运行编译代码时,即在生产模式下,此目录将不存在。

要查看最终应用程序中的文件和目录,请执行“sbt compile”,然后查看目录“target/scala-2.12/classes”。

【讨论】:

    猜你喜欢
    • 2017-09-28
    • 2015-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 2018-11-27
    相关资源
    最近更新 更多