Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

no configuration setting found for key akka

Tags:

scala

akka

spray

I am using scala, spray and akka for one of my projects. In Intellij, it is working fine. When I build the project and tried to run it in command line, I get the following error.


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)

Please help me in solving the issue

like image 741
Rahul Dev Avatar asked Feb 06 '15 11:02

Rahul Dev


3 Answers

The problem is when using sbt:assembly the default merge strategy excludes all the reference.conf files as per

If multiple files share the same relative path (e.g. a resource named application.conf in multiple dependency JARs), the default strategy is to verify that all candidates have the same contents and error out otherwise.

The solution is to add a MergeStrategy as follows

assemblyMergeStrategy in assembly := {
  case PathList("reference.conf") => MergeStrategy.concat
}
like image 158
BenjaminParker Avatar answered Nov 16 '22 04:11

BenjaminParker


Akka will read the configuration file from the following location by default:

  1. application.conf under root of classpath (including in jar)
  2. manually passed in configuration from ActorSystem("name", config).
  3. reference.conf under root of classpath (including in jar)

Please double check your classpath and see if you have a bad classpath reference which indicate a bad root of classpath for akka jars, spray jars, etc.

like image 30
LynxZh Avatar answered Nov 16 '22 04:11

LynxZh


maven-shade-plugin configuration for maven users:

<configuration>
    <transformers>
        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
            <resource>reference.conf</resource>
        </transformer>
    </transformers>
</configuration>

like image 3
skwon Avatar answered Nov 16 '22 04:11

skwon