我有一个名为欧米茄无法读取配置文件中使用类型安全的阶API
我有欧米茄/ conf目录内conf文件火花/斯卡拉项目/ omega.config
我使用API的类型安全的,从到从conf/omega.config加载配置文件。 它工作正常,我能够读取每个键的相应值
现在,今天,我第一次在omega.config文件中添加了一些更多的键值对,并试图从我的scala中检索它们码。它抛出
Exception in thread "main" com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'job_name'
这个问题开始在我omega.config文件的密钥JOB_NAME增加新的价值后发生。 另外我无法读取新添加的键值,我仍然可以使用config读取所有旧值。 getString方法
我正在使用maven构建我的spark/scala应用程序。
Omega.config
input_path="/user/cloudera/data
user_name="surender"
job_name="SAMPLE"
我无法访问最近添加的关键 “JOB_NAME” 独 包com.pack1
import com.pack2.ApplicationUtil
object OmegaMain {
val config_loc = "conf/omega.config"
def main(args: Array[String]): Unit = {
val config = ApplicationUtil.loadConfig(config_loc)
val jobName = ApplicationUtil.getFromConfig(config,"job_name")
}
}
package com.pack2
import com.typesafe.config.{Config, ConfigFactory}
object ApplicationUtil {
def loadConfig(filePath:String):Config={
val config = ConfigFactory.parseFile(new File(filePath))
config
}
def getFromConfig(config:Config,jobName:String):String={
config.getString(jobName)
}
}
能有人帮我出了什么问题?
您是否直接将您的配置解析到类中?向我们展示您用于使用类型安全配置的代码。如果你愿意的话,[MCVE]。 –
@Yuval:添加了代码 –
您使用的路径是相对的......也许您没有像以前一样执行您的应用程序?进行测试并尝试指定绝对路径,或者如果文件位于类路径中,则尝试将其指定为资源而不是构建新的文件(路径)。 – Cheloute