logger.debug() NoSuchMethodError Spring-Boot 与 Elasticsearch 客户端 5.5.2

fri*_*cke 5 java logback slf4j elasticsearch spring-boot

我尝试将 elasticsearch 客户端从 1.x 升级到当前版本 5.5.2(仅传输层),在修复所有 API 更改后,我遇到了记录器桥的主要问题。

正如文档中所述,我添加了必要的依赖项

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-to-slf4j</artifactId>
        <version>2.8.2</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.24</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

但我仍然遇到以下异常(详细信息):

Caused by: java.lang.NoSuchMethodError: org.apache.logging.log4j.Logger.debug(Ljava/lang/String;Ljava/lang/Object;)V
at org.elasticsearch.threadpool.ThreadPool.<init>(ThreadPool.java:203)
at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:129)
at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:265)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:130)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:116)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:106)
at net.my-local-stuff.nia.NiaApplication.esClient(NiaApplication.java:168)
Run Code Online (Sandbox Code Playgroud)

在升级之前,我将 logback 作为记录器,并且它仍然由我自己的代码中的 slf4j 外观拉动(显然它不会在 elasticsearch 的代码中拉动)。

如果有人想查看依赖树的要点。对我来说,似乎所有必要的依赖项都在那里。

关于日志记录的所有内容似乎最终都出现在一个未找到的类中(虽然我以某种方式获得了一个记录器实例,但该记录器实例没有所有方法。:-()。

非常感谢弗里克的帮助