Migration to Play! 2.5 leads to this error: NoSuchMethodError: akka.actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter
Migration to Play! 2.5 leads to this error: NoSuchMethodError: akka.actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter
我正在更新我的 Play!从 2.4 到 2.5.10 的 Scala 应用程序,我得到了这个运行时异常:
java.lang.NoSuchMethodError: akka.actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter;
关于 Akka 的 build.sbt 部分没有改变,如下所示(使用 akkaVersion 2.4.14):
"com.typesafe.akka" %% "akka-distributed-data-experimental" % akkaVersion,
"com.typesafe.akka" %% "akka-cluster" % akkaVersion,
"com.typesafe.akka" %% "akka-contrib" % akkaVersion,
"com.typesafe.akka" %% "akka-slf4j" % akkaVersion)
如果我禁用关于 clusterActorRefProvider 的 conf(即 akka.actor.provider = "akka.cluster.ClusterActorRefProvider"
)部分,我只会收到此错误:
needs to have a 'ClusterActorRefProvider' enabled in the configuration, currently uses [akka.actor.LocalActorRefProvider]
堆栈跟踪对我帮助不大,因为它没有引用任何文件
我的申请。
这是开头:
1) Error injecting method, java.lang.NoSuchMethodError: akka.actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter; at com.google.inject.util.Providers$GuicifiedProviderWithDependencies.initialize(Providers.java:149) at play.api.libs.concurrent.AkkaGuiceSupport$class.bindActor(Akka.scala:139) (via modules: com.google.inject.util.Modules$OverrideModule -> Modules) Caused by: java.lang.NoSuchMethodError: akka.actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter; at akka.remote.RemoteActorRefProvider.<init>(RemoteActorRefProvider.scala:132)
我不知道我必须在哪里找到问题的原因...
编辑: 只是更改 Play 的版本!从 2.5.10 到 2.5.9 使异常消失。
检查您的 Akka 版本。我早些时候有同样的问题。我从 2.4.4
移动 -> 2.4.14
解决了问题。
如需进一步阅读,可以找到源代码 here
我正在更新我的 Play!从 2.4 到 2.5.10 的 Scala 应用程序,我得到了这个运行时异常:
java.lang.NoSuchMethodError: akka.actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter;
关于 Akka 的 build.sbt 部分没有改变,如下所示(使用 akkaVersion 2.4.14):
"com.typesafe.akka" %% "akka-distributed-data-experimental" % akkaVersion,
"com.typesafe.akka" %% "akka-cluster" % akkaVersion,
"com.typesafe.akka" %% "akka-contrib" % akkaVersion,
"com.typesafe.akka" %% "akka-slf4j" % akkaVersion)
如果我禁用关于 clusterActorRefProvider 的 conf(即 akka.actor.provider = "akka.cluster.ClusterActorRefProvider"
)部分,我只会收到此错误:
needs to have a 'ClusterActorRefProvider' enabled in the configuration, currently uses [akka.actor.LocalActorRefProvider]
堆栈跟踪对我帮助不大,因为它没有引用任何文件 我的申请。 这是开头:
1) Error injecting method, java.lang.NoSuchMethodError: akka.actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter; at com.google.inject.util.Providers$GuicifiedProviderWithDependencies.initialize(Providers.java:149) at play.api.libs.concurrent.AkkaGuiceSupport$class.bindActor(Akka.scala:139) (via modules: com.google.inject.util.Modules$OverrideModule -> Modules) Caused by: java.lang.NoSuchMethodError: akka.actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter; at akka.remote.RemoteActorRefProvider.<init>(RemoteActorRefProvider.scala:132)
我不知道我必须在哪里找到问题的原因...
编辑: 只是更改 Play 的版本!从 2.5.10 到 2.5.9 使异常消失。
检查您的 Akka 版本。我早些时候有同样的问题。我从 2.4.4
移动 -> 2.4.14
解决了问题。
如需进一步阅读,可以找到源代码 here