elasticsearch-rest-client 7.4.2版本jar包沖突解決


image-20201028214208467

問題定位及分析

通常出現java.lang.NoSuchMethodError 異常說明項目中出現了jar包沖突,項目運行時調用了版本A中的某個類的方法, 但實際上classLoader加載的是版本B的類文件,而版本B中並沒有實際調用的方法簽名,導致異常出現。

image-20201028214243925

可以看到elasticsearch-rest-high-level-client:7.4.2依賴於elasticsearch-rest-client:7.6.2

問題已經顯而易見了elasticsearch-rest-high-level-client:7.4.2依賴於`elasticsearch-rest-client:7.6.2,由於它里面沒有這個jar包

問題解決

出現jar包沖突,通常的解決方案就是將版本不一致導致沖突的包排除,引入版本一致的依賴,具體到本次問題,將elasticsearch-rest-high-level-client的依賴包修為為:

        <!--es客戶端-->
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>7.4.2</version>
            <exclusions>
                <exclusion>
                    <groupId>org.elasticsearch</groupId>
                    <artifactId>elasticsearch</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.elasticsearch.client</groupId>
                    <artifactId>elasticsearch-rest-client</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-client</artifactId>
            <version>7.4.2</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>7.4.2</version>
        </dependency>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM