Я пытаюсь использовать страуса в качестве библиотеки конфигурации в моем новом приложении (ранее у меня был положительный опыт использования его для статистики времени выполнения).Но я не могу заставить его работать, используя фрагмент кода из файла readme.
Вот мой код:
class Boot {
val bootLogger = LoggerFactory.getLogger(this.getClass)//slf4j
val confPath = Option(System.getenv("CONF_FILE"))
//living inside akka-kernel, so there is no access to real args
val args: Array[String] = confPath match {
case Some(path) => Array("-f", path)
case None => Array()
}
bootLogger.info(Class.forName("la.myproject.Config").toString)
val runtime = RuntimeEnvironment(this, args)
val server = runtime.loadRuntimeConfig[Server]()
try {
server.start()
} catch {
case e: Exception =>
bootLogger.error("Server start failed", e)
}
}
И это мой конфиг:
new la.myproject.Config {
//use the defaults
}
Программа успешно загружает класс конфигурации и завершается с ошибкой:
Ошибка в файле конфигурации: ../../src/main/conf/myproject.scala
com.twitter.util.Eval $ CompilerException: ошибка исключения компилятора: строка 3: не найдено: значение la
new la.myproject.Config {
Я предполагаю, что этопроблема загрузки классов.Но копание в источниках не дало мне понять, почему это происходит.Страус и утилита Eval вообще не касаются загрузки классов.