【问题标题】:no configuration setting found for key akka找不到密钥 akka 的配置设置
【发布时间】:2023-03-21 00:47:01
【问题描述】:

我在我的一个项目中使用 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)

请帮我解决问题

【问题讨论】:

  • 你需要在你的conf文件中为akka提供配置……就这么简单。
  • 我理解...我使用的是默认配置。在 ide 它工作正常..
  • 那么可能和你在命令行运行的方式有关。你是如何运行它的?
  • 这是因为当我们将项目构建为单个 jar 时,reference.conf 文件将被覆盖。我们必须将所有 jars reference.conf 复制到单个 reference.conf。它会正常工作...:-)

标签: scala akka spray


【解决方案1】:

问题是在使用 sbt:assembly 时,默认的合并策略会排除所有的 reference.conf 文件

如果多个文件共享相同的相对路径(例如,多个依赖 JAR 中名为 application.conf 的资源),默认策略是验证所有候选文件是否具有相同的内容,否则会出错。

解决方法是添加一个MergeStrategy如下

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

【讨论】:

  • 在执行jetty:start 然后exit 之后,我在 sbt 控制台中收到错误。
【解决方案2】:

Akka 默认会从以下位置读取配置文件:

  1. classpath 根目录下的application.conf(包括在jar 中)
  2. 从 ActorSystem("name", config) 手动传入配置。
  3. classpath 根目录下的reference.conf(包括在jar 中)

请仔细检查您的类路径,看看您是否有一个错误的类路径引用,这表明 akka 罐子、喷雾罐等的类路径根不正确。

【讨论】:

    【解决方案3】:

    maven 用户的 maven-shade-plugin 配置:

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

    【讨论】:

      猜你喜欢
      • 2018-04-15
      • 2013-05-17
      • 2016-06-18
      • 2015-09-09
      • 2017-10-29
      • 1970-01-01
      • 1970-01-01
      • 2015-02-21
      • 2018-11-27
      相关资源
      最近更新 更多