私は自分のプロジェクトの1つにscala、spray、およびakkaを使用しています。 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)
問題を解決するのを手伝ってください
問題は、sbt:Assemblyを使用すると、デフォルトのマージ戦略で、すべてのreference.confファイルが除外されるためです。
複数のファイルが同じ相対パスを共有している場合(たとえば、複数の依存関係JAR内のapplication.confという名前のリソース)、デフォルトの戦略は、すべての候補が同じ内容であり、そうでない場合はエラーになることを確認することです。
解決策は、次のようにMergeStrategyを追加することです
assemblyMergeStrategy in Assembly := {
case PathList("reference.conf") => MergeStrategy.concat
}
Akkaはデフォルトで次の場所から設定ファイルを読み込みます:
クラスパスを再確認し、クラスパス参照が間違っていないかどうか確認してください。これは、akka jar、スプレーjarなどのクラスパスのルートが間違っていることを示しています。