日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Could not initialize class net.sf.cglib.beans.BeanMap$Generator異常解決

作者:慕白Lee 更新時間: 2023-09-17 編程語言

目錄

前言

解決方法

復盤分析


前言

使用easyexcel時,研發環境正常, ?服務器編譯正常,?EasyExcel調用方法的時候,? 服務器出現Could not initialize class net.sf.cglib.beans.BeanMap$Generator問題。

報錯信息

com.alibaba.excel.exception.ExcelAnalysisException: 
java.lang.NoClassDefFoundError: 
Could not initialize class net.sf.cglib.beans.BeanMap$Generator
...

一般遇到NoClassDefFoundError類似的異常時,大多數都是因為jar包沖突引起的。

解決方法

發現是jar包版本沖突的問題

  1. easyexcel 3.3.0 依賴 cglib 3.1,cglib又依賴 asm;

  2. 項目的springboot版本2.x,底層會依賴 asm

  3. springboot最好是不要動它, 查詢springboot的asm的依賴版本, 將cglib依賴asm版本保持一致

  4. 所以最后只需要指定cglib的版本即可

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.0.5</version>
            <exclusions>
                <exclusion>
                    <groupId>cglib</groupId>
                    <artifactId>cglib</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>2.2</version>
        </dependency>

復盤分析

圖解(借圖)

?maven官方倉庫

目前最新版本9.5

?發現3.3.1版本以后的就改了groupId

  • 由于項目使用的 springboot 版本是 2.x, 需要依賴 asm3.1,
  • easyexcel 2.1.6 依賴的是 asm 4.2,,? easyexcel依賴asm4.2的時候自然就找不到了
  • 最后, 此類問題用idea插件比對下,? 找出所有jar沖突的地方解決,? 即可避免此類問題

有用請點贊,養成良好習慣!

疑問、交流、鼓勵請留言!

歡迎補充!?。?/strong>

原文鏈接:https://libusi.blog.csdn.net/article/details/132495246

  • 上一篇:沒有了
  • 下一篇:沒有了