J'utilise scala, spray et akka pour l'un de mes projets. À Intellij, cela fonctionne bien. Lorsque je crée le projet et que j'essaie de l'exécuter en ligne de commande, j'obtiens l'erreur suivante.
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)
S'il vous plaît, aidez-moi à résoudre le problème
Le problème est lors de l'utilisation de sbt: Assembly, la stratégie de fusion par défaut exclut tous les fichiers reference.conf selon
Si plusieurs fichiers partagent le même chemin relatif (par exemple une ressource nommée application.conf dans plusieurs fichiers JAR de dépendance), la stratégie par défaut consiste à vérifier que tous les candidats ont le même contenu et à sortir autrement.
La solution consiste à ajouter une MergeStrategy comme suit
assemblyMergeStrategy in Assembly := {
case PathList("reference.conf") => MergeStrategy.concat
}
Akka lira le fichier de configuration à partir de l'emplacement suivant par défaut:
Veuillez vérifier votre chemin de classe et voir si vous avez une mauvaise référence de chemin de classe qui indique une mauvaise racine de chemin de classe pour les pots akka, les pots de pulvérisation, etc.