Ich habe einen Funken/scala Projekt mit dem Namen wie OmegaNicht in der Lage Konfigurationsdatei scala typsichere API
Ich habe eine conf-Datei in Omega/conf/omega.config
Ich benutze API von typsicher lesen lade die Konfigurationsdatei von conf/omega.config. Es funktionierte gut und ich konnte den jeweiligen Wert für jeden Schlüssel
lesenJetzt heute, zum ersten Mal habe ich einige Schlüssel-Wert-Paare in meiner omega.config-Datei hinzugefügt und versucht, sie von meinem scala abrufen Code. Es wirft
Exception in thread "main" com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'job_name'
Dieses Problem geschieht begann nach neuen Wert für den Schlüssel job_name in meiner omega.config Datei hinzufügen. Ich kann auch die neu hinzugefügten Schlüsselwerte nicht lesen, trotzdem kann ich alle alten Werte mit config lesen. getString-Methode
Ich baue meine Spark/Scala-Anwendung mit Maven.
Omega.config
input_path="/user/cloudera/data
user_name="surender"
job_name="SAMPLE"
Ich bin nicht fähig, die vor kurzem hinzugefügt Schlüssel "job_name", um allein Paket 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)
}
}
Könnte jemand mir helfen, was schief gelaufen ist?
Beheben Sie Ihre Konfiguration direkt in einer Klasse? Zeigen Sie uns den Code, den Sie für die Arbeit mit typesafe config verwenden. A [MCVE] wenn du willst. –
@Yuval: Der Code wurde auch hinzugefügt –
Der Pfad, den Sie verwenden, ist relativ ... Vielleicht führen Sie Ihre App nicht von der gleichen Stelle aus wie zuvor? Führen Sie einen Test durch und versuchen Sie, einen absoluten Pfad anzugeben, oder versuchen Sie, wenn sich die Datei in Ihrem Klassenpfad befindet, diesen als Ressource anzugeben, anstatt eine neue Datei (Pfad) zu erstellen. – Cheloute