java - NoSuchMethodError:akka.actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter
问题描述
当我开始一个简单的akka-http-server
,我得到一个例外。我在互联网上搜索了两个对我不起作用的解决方案:
- 混合 scala 版本。(我检查了我的 pom 2.11 scala 没有混合)
- 更改 scala 演员版本。(我用 2.11 scala 尝试了近十个版本)
我不知道如何解决这个问题,请告诉我如何解决它。
application.conf
akka {
actor {
provider = "akka.remote.RemoteActorRefProvider"
}
remote {
enabled-transports = ["akka.remote.netty.tcp"]
netty.tcp {
hostname = "127.0.0.1"
port = 2552
}
}
}
main class
package com.akkademo;
import akka.actor.ActorSystem;
import akka.actor.Props;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
public class Main {
public static void main(String[] args) {
ActorSystem actorSystem = ActorSystem.create("akkademo", ConfigFactory.load());
Config config = actorSystem.settings().config();
actorSystem.actorOf(Props.create(AkkademoDb.class), "akkademo-db");
}
}
pom.xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jdk.version>1.8</jdk.version>
<scala>2.11</scala>
<scala.version>2.11.8</scala.version>
<akka.version>2.4.14</akka.version>
<akka.remote>2.3.6</akka.remote>
<akka.compat>0.7.0</akka.compat>
<akka.test>2.5.9</akka.test>
</properties>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-testkit_${scala}</artifactId>
<version>${akka.test}</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-remote_${scala}</artifactId>
<version>${akka.remote}</version>
</dependency>
<dependency>
<groupId>org.scala-lang.modules</groupId>
<artifactId>scala-java8-compat_${scala}</artifactId>
<version>${akka.compat}</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor_${scala}</artifactId>
<version>${akka.version}</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-slf4j_${scala}</artifactId>
<version>${akka.version}</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>aliyun</id>
<name>aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
线程“主”java.lang.NoSuchMethodError 中的异常:akka.actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter;在 akka.remote.RemoteActorRefProvider.(RemoteActorRefProvider.scala:128) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance( DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at akka.actor.ReflectiveDynamicAccess$$anonfun$createInstanceFor$2.apply(ReflectiveDynamicAccess.scala:32) at scala.util.Try $.apply(Try.scala:192) 在 akka.actor.ReflectiveDynamicAccess。
解决方案
您的问题可能是由使用不同的次要版本akka-remoting
和核心akka-actor
包引起的。
将akka.version
andakka.remote
属性设置为相同的值。当前版本是2.5.19
.
推荐阅读
- c++ - 将 boost 编译为通用库(Intel 和 Apple Silicon 架构)
- javascript - React Native,在 app.js 中导入 routes.js 给出错误
- r - 日期过滤器在 R 中使用或不使用 lubridate 都不起作用
- gradle - 在根项目中找不到任务“运行”
- python - 如何在硒(python)中处理谷歌隐私弹出窗口
- python - 将 JSON 列表转换为 Pandas 数据框
- javascript - 可以在Angular中将多个输入作为数组传递吗?
- opencv - 模板匹配和pyrDown的问题
- kubernetes - Prometheus:在 Prometheus 中找不到来自 pod 的指标
- angular - Angular 在更改时将 ngModel 传递给组件