開發一個小功能,遇到了No such method ,由於沒有源碼,一直覺得攔截器的問題致使404,單步調試過程當中發現只要運行StringUtils.substringsBetween 這段代碼就會有問題。
好奇心趨勢一直調試這個問題,懷疑是否是像上次同樣JDK版本的問題致使的?java
後來確認同事也是用的JDK1.8版本,並且這個方法也不是原生的,諮詢同事原來是由於包衝突的問題致使。框架
StringUtils 是commons-lang下面的一個包,而用這個包的地方不少,很容易出現版本衝突的問題。這時候就要想辦法解決包衝突,問題解決。spa
這是一個值得深層次思考的問題,調試
而咱們公司採用的SOA框架是自定義ClassLoader,引入jar包按照字母順序來加載,因此會出現某個jar 依賴的低版本的jar包先行加載到classLoader中,致使出現No such method 或者 No such Classssl