2017-02-17 2 views
1

При печати текущих значений конфигурации с помощью println(system.settings.config.root().values()) я получил длинный список значений, вырезанные:Не удается получить значение конфигурации из Акки ActorSystem

[SimpleConfigObject ({ «разделитель»: «:»}), SimpleConfigObject ({"home": "/ usr/local/Cellar/typesafe-activator/1.3.10"}), , SimpleConfigObject ({"country": {"format": "UA"}, "dir" : «/ Пользователи/sr/ScalaProjects/akka-http-test», «home»: «/ Users/sr», «language»: «en», «name»: «sr»})]

Я хочу получить v с ключом «dir». я пытаюсь сделать это следующим образом:

system.settings.config.getValue("dir") 

но получил исключение:

com.typesafe.config.ConfigException $ Missing: Нет настройки конфигурации найдено для ключа '' реж

Как получить этот ключ?

ответ

0

Возможно, вам не удалось получить доступ к user перед обращением к dir.

system.settings.config.getConfig("user").getValue("dir") 

Обратите внимание, что вы не печатает ключи конфигурации при печати root().values(), поэтому вы не можете увидеть ключ «пользователя». Вы должны иметь возможность видеть полный блок конфигурации путем печати (например,

println(system.settings.config.root().entrySet()) 
+0

Вы правы, но можете ли вы сказать мне, почему это так? Где вы нашли этот «пользовательский» ключ? – user2975535

+0

Вы можете проверить, проверив всю распечатку 'system.settings.config.root(). Values ​​()' - блок 'dir' будет вложен в блок' user' –

+0

Фактически, когда я копирую весь результат из print system.settings.config.root(). values ​​() и поиск в нем для слова «пользователь». Я не могу найти его вообще. Но ваше решение работает, поэтому я буду отмечать, что вы отвечаете как правильно. Спасибо – user2975535

Смежные вопросы