java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V
報錯如下圖:

出現(xiàn)這個錯誤,感覺頭大,花很長時間沒有搞定,后來,無意間需要項目更新bug,發(fā)現(xiàn)在linux上支付回調(diào)正常,那說明在Linux上支付可以了,今天開新項目,本地調(diào)試發(fā)現(xiàn)還是如上圖錯誤,想必須搞定,翻閱很多博客,總結(jié)后覺得是jar包沖突,然后回到報錯的類,如下圖

這是微信提供sdk中的一個類,

選中DocumentBuilderFactory這個類,然后Ctrl+t,彈出如上圖:
發(fā)現(xiàn)有兩個實現(xiàn)類,
第一個有其它博客提到的關鍵詞xerces
第二個是Java提供的,這個沒問題,那第一個實現(xiàn)類就是沖突的類,然后點擊一個實現(xiàn)類

沖突包找到了,解決辦法有兩種
第一種排除這個包,操作如下圖:

如上圖操作后,pom.xml會有所變化,如下圖:

按預期測試,問題解決
第二種去掉這個包的maven依賴,經(jīng)過第一種操作,也知道了到底什么依賴導致沖突了,直接刪除。
在說一個跟這個文章沒有直接關系的問題,按照第二種方法刪除依賴后,發(fā)現(xiàn)一個類AesCbcUtil(這個類是用來解密微信小程序用戶登錄解密encryptedData用的)引用上圖依賴中的Base64類,后來嘗試jdk的Base64也可以完成同樣的功能。

微信給解決方案,真的坑猿,不管啥項目都用支付寶多好啊,簡單高效,還不用連公網(wǎng),為了方便其他猿,寫這篇文章,希望能幫助其他猿