亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

nested exception is java.lang.NoSuchMethodError

nested exception is java.lang.NoSuchMethodError

冉冉說 2019-03-01 10:44:38
Handler processing failed; nested exception isjava.lang.NoSuchMethodError:com.eroadsf.framework.web.system.util.PoiExcel2k3Helper.readExcelInArray(Ljava/lang/String;I[Ljava/lang/String;)Ljava/util/ArrayList 我的函數原型是這樣的 public ArrayList<String[]> readExcelInArray(StringfilePath, int sheetIndex, String[] columns) { 我是這樣調用的 helper.readExcelInArray(file.getPath(),sheetIndex,clomns) <font color=red> 我上過Stack Overflow,感覺回答都不怎么樣,也沒有熱度高的</font> 我clean install 了很多遍,編譯沒問題! 有沒有大神知道原因的
查看完整描述

2 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

NoSuchMethodError 沒有找到相關的方法, 你編譯能通過. 這只能說明你的編譯環境和你運行時環境CLASSPATH有區別.
這個問題打個斷點或者把運行時對應的 class 反編譯一下就能找到差別了.


  1. 因為 jrebel 會通過 agent transform 修改class字節碼. 你需要找到 jrebel 配置的 class dir, 在對應的目錄中找到PoiExcel2k3Helper文件, 通過javap就可以查看對應的字節碼. 可能在這個文件中你定義的readExcelInArray方法是只有1個參數.
  2. 還有一個可能就是你的classpath環境中有2個PoiExcel2k3Helper文件, 因為編譯, 運行時加載class的順序不一致導致, 你調用的方法也不一樣.
  3. 至于查看運行時classpath環境, 你通過classload加載class查看該類對應的方法就行.
ClassLoader loader = Test.class.getClassLoader();
System.out.println(loader.getResource("foo/Test.class"));

通過上面的代碼, 你可以知道class的來源.

查看完整回答
反對 回復 2019-03-01
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

就是沒有找到相關的方法。

clean install 編譯沒問題,不代表jar包就正確引入了。

你目前的這個框架里,引入的包是有這個方法么,自己先看一下。

然后就是排查一下依賴,是不是引入了低版本的。

就是這么幾個思路。

查看完整回答
反對 回復 2019-03-01
  • 2 回答
  • 0 關注
  • 3556 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號