我正在使用 Akka Actor 在 karaf 中进行远程通信。
当我使用maven部署编译后生成的jar文件时,出现以下错误:
Exception in thread "Thread-113" com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'akka.version' at com.typesafe.config.impl.SimpleConfig.findKeyOrNull(SimpleConfig.java:152) at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:170) at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:176) at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:184) at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:189) at com.typesafe.config.impl.SimpleConfig.getString(SimpleConfig.java:246) at akka.actor.ActorSystem$Settings.(ActorSystem.scala:168) at akka.actor.ActorSystemImpl.(ActorSystem.scala:522) at akka.actor.ActorSystem$.apply(ActorSystem.scala:142) at akka.actor.ActorSystem$.apply(ActorSystem.scala:119) at org.opendaylight.com.test.rem$$anon$1.run(rem.scala:19)
我什至在其他答案中建议的 pom 文件中添加了 Maven 阴影插件,但添加该插件会使所有 karaf 功能更改为“已解决”状态。 akka 的配置文件也位于类路径中。据我所知,akka 配置文件根本没有被读取,因为即使删除配置文件后我也遇到了相同的异常。
最佳答案
此错误通常是由于将多个 Akka jar 组合成一个 super jar 且未正确处理 reference.conf
文件而引起的。每个 Akka 模块 jar 文件中的 reference.conf
文件需要连接到 super jar 中的单个文件中。
按照此处文档中的说明进行操作:https://doc.akka.io/docs/akka/current/scala/general/configuration.html#when-using-jarjar-onejar-assembly-or-any-jar-bundler
然后验证运行时使用的 jar 文件是否将所有这些 reference.conf
文件的内容连接到一个文件中。
关于java - Akka:无法读取 karaf 中的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46928723/