java - 如何修复 log4j 中的“NoSuchMethodError”错误
问题描述
我正在开发一个使用 elasticsearch 的 java 应用程序。我在java中使用elasticsearch api。我收到 NoSuchMethodError 错误:
java.lang.NoSuchMethodError: org.apache.logging.log4j.Logger.trace(Ljava/lang/String;Ljava/lang/Object;)V
我已经包含了我的 pom 文件
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>5.4.2</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>5.4.2</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.10</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3</version>
</dependency>
</dependencies>
解决方案
请检查您在类路径上的 Log4j 依赖项。对于 elasticsearch 5.4.x,您需要 Log4j 2.8.2(api 和核心),而不是 2.3。请参阅https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.4/_log4j_2_logger.html
推荐阅读
- java - project-to-test pom 配置似乎没有生效
- python - Tensorflow模型量化最佳策略
- python - Pandas 滚动 std 产生不一致的结果并且与 values.std 不同
- python-3.x - (来自 dask 分布式)ImportError: cannot import name 'scheduler'
- url - Jekyll 使 url 可点击
- r - 识别多边形/边缘的最大/最小坐标 [R]
- angular - 每个 url 段都需要一个路由模块吗?
- css -
我正在努力解决移动设备中的 wordpress 网站速度问题。移动速度是 43 而桌面速度是 93 我看到主要问题来自预加载密钥请求时间。这个问题来自于
- visual-studio-code - VScode 远程开发:如何在运行真正的构建任务之前运行构建任务以获取环境变量?
- javascript - 将数据导入 Mongodb 模式