Подтвердить что ты не робот

Нет настройки конфигурации для ключа akka

Я использую scala, спрей и акка для одного из моих проектов. В Intellij он работает нормально. Когда я создаю проект и пытаюсь запустить его в командной строке, я получаю следующую ошибку.


Caused by: com.typesafe.config.ConfigException$Missing: No configuration setting
 found for key 'akka'
        at com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:124)
        at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:147)
        at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:159)
        at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:164)
        at com.typesafe.config.impl.SimpleConfig.getString(SimpleConfig.java:206)
        at akka.actor.ActorSystem$Settings.(ActorSystem.scala:168)
        at akka.actor.ActorSystemImpl.(ActorSystem.scala:504)
        at akka.actor.ActorSystem$.apply(ActorSystem.scala:141)
        at akka.actor.ActorSystem$.apply(ActorSystem.scala:108)
        at akka.actor.ActorSystem$.apply(ActorSystem.scala:99)

Пожалуйста, помогите мне в решении проблемы.

4b9b3361

Ответ 1

Проблема заключается в том, что при использовании sbt: assembly стратегия слияния по умолчанию исключает все файлы reference.conf согласно

Если несколько файлов имеют один и тот же относительный путь (например, ресурс с именем application.conf в JAR с несколькими зависимостями), стратегия по умолчанию заключается в том, чтобы убедиться, что все кандидаты имеют одинаковое содержимое и, в противном случае, обходят ошибку.

Решение состоит в том, чтобы добавить MergeStrategy следующим образом:

assemblyMergeStrategy in assembly := {
  case PathList("reference.conf") => MergeStrategy.concat
}

Ответ 2

Акка будет читать конфигурационный файл из следующего местоположения по умолчанию:

  • application.conf под root из пути к классам (в том числе в банке)
  • вручную передается в настройках из ActorSystem ( "имя", "config" ).
  • reference.conf под root из пути к классам (в том числе в банке)

Пожалуйста, дважды проверьте свой путь к классу и посмотрите, есть ли у вас неправильная ссылка на класс, которая указывает на плохой корень пути к классам для банок akka, распылительных банок и т.д.