Jar包衝突解決
“問題:在對接TrustSQL開放測試平臺時,遇到問題,對方提供的SDK工具包中報空指標異常,
原因:檢查後發現是因為在選擇加密曲線“secp256k1”時,沒有獲取到此曲線傳遞,一步步DEBUG後發現是由於對方提供的SDK工具包中已有方法:ECNamedCurveTable.getParameterSpec(“secp256k1”)
而專案本身已經帶有一個jar包:bcprov-jdk14-136.jar,此jar包中也包含有上述方法,而且方法路徑和SDK工具包中一致,在專案執行過程中,專案本身優先呼叫的是此jar包中的方法,而bcprov-jdk14-136.jar中的ECNamedCurveTable.getParameterSpec(“曲線”)內無法生成,secp256k1的曲線傳遞,故而返回一個null物件,導致在接下來的呼叫中,產生了空指標異常。
總結:綜上所述,原因就是說簡單不簡單的jar包衝突
解決:
方法一:專案是maven專案,使用命令:dependency:tree -Dverbose -Dincludes=:bcprov-jdk
找出此bcprov-jdk14-136.jar包的依賴關係,如下所示:
得知此jar包是在org.xhtmlrenderer:core-renderer下依賴進入專案的,故在pom.xml中新增以下配置:
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>core-renderer</artifactId >
<version>R8pre2</version>
<exclusions>
<exclusion>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
</exclusion>
<exclusion>
<groupId >org.bouncycastle</groupId>
<artifactId>bcprov-jdk14</artifactId>
</exclusion>
</exclusions>
</dependency>
即可排除bcprov-jdk14-136.jar,問題解決!
另外注意:貌似使用maven排除jar包需一層一層往下排除,直接排除最底層依賴的jar貌似是不行,具體沒有驗證,有大神知道麼?!
方法二:捷徑~專案打包後,直接刪除bcprov-jdk14-136.jar即可,此方法不知有沒有缺陷,畢竟依賴關係在那擺著!~”
相關推薦
maven專案jar包衝突解決方案
上圖中顯示的是servlet2.3而不是3.0。 解決方法: 網上都說servlet-api衝突是因為專案部署的時候WEB-INFO/lib下面的servlet-api和servlet中的servlet-api產生衝突,其實我的不然。因為我的專案是用maven管理的,在pom.
一次關於log4j的jar包衝突解決:Caused by: java.lang.NoSuchFieldError: fileName
專案中log系統使用的 logback + slf4j 實現, 今天一同事新引入幾個jar包,結果tomcat啟動時報了以下異常: Caused by: org.springframework.beans.factory.BeanCreationException: Error creati
Maven jar包衝突解決辦法
下面兩個配置有簡潔的包依賴衝突: <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</ar
Maven的傳遞性依賴及其jar包衝突解決
一、Maven簡介 Maven是一個跨平臺的專案管理工具。作為Apache組織的一個頗為成功的開源專案,其主要服務於基於Java平臺的專案建立,依賴管理和專案資訊管理。 二、Maven的依賴管理 1
Gradle 引用第三方庫,jar包衝突解決方案
一、使用exclude標籤 //RxTools工具類集合https://github.com/vondear/RxTools api 'com.github.vondear:RxTools:v1.7.6.4' //zxing第三方https://github
Jar包衝突解決方法
前言 對於Jar包衝突問題,我們開發人員經常都會有碰到,當我們使用一些jar包中的類、方法等,或者有時遇到一些日誌系統的問題(參考另一篇文章Jar包衝突導致的日誌問題),我們會遇到ClassNotFoundException,NoSuchFieldException,N
安卓開發之引入第三方庫導致jar包衝突解決辦法
這幾天的任務是將mapbox的工程合到程式中去,但是合併過程卻出現了問題 合併方法: 在app的build.gradle中新增 dependencies { compile ('com.mapbox.mapboxsdk:mapbox-android
Jar包衝突解決
“問題:在對接TrustSQL開放測試平臺時,遇到問題,對方提供的SDK工具包中報空指標異常, 原因:檢查後發現是因為在選擇加密曲線“secp256k1”時,沒有獲取到此曲線傳遞,一步步DEBUG後發現是由於對方提供的SDK工具包中已有方法:ECNamedCu
java jar包衝突解決方案
引言 在使用java語言開發,maven做專案管理時,我們經常遇到一個頭疼的問題就是jar包衝突。比如專案中不同的兩個依賴A和B,都同時依賴了一個專案C,但是依賴的版本不同,這時候我們就要考慮這兩個版本之間是否有衝突,不解決這些衝突,我們的專案雖然能編譯成功,
spring-data-redis和jedis整合版本導致jar包衝突解決
在jedis和spring-data-redis整合測試時出現該異常,搜尋後瞭解到該類異常時由於jedis和spring-data-redis的版本導致jar包衝突了。搜尋過程中發現該類問題出現的頻率很高,其中有一篇文章提到了官方提到的整合所需的必備環境,後來到官網檢視後確實
elastic Job 引入jar 包衝突解決辦法
在使用Elastic job的時候,自己執行demo沒有問題,但是加入到專案中就會出現如下的問題 org.springframework.beans.factory.BeanCreationException: Error creating bean with name '
Maven之jar包衝突解決
用了Maven之後,不得不說它是一個很好的用於專案構建,管理,jar包管理的工具,但是使用過程中,相信各位也遇到過jar衝突這種煩人的問題,特別是大專案,依賴的jar包比較多,很容易造成jar包衝突,jar包衝突的一個很大的原因即產類包之間的間接依賴引起的。每個顯式宣告的類包
jar 包衝突解決辦法
jar包衝突常見的異常為找不到類(java.lang.ClassNotFoundException)、 找不到具體方法(java.lang.NoSuchMethodError)、 欄位錯誤( java.lang.NoSuchFieldError) 或者類錯誤(java.l
maven JAR包衝突解決方案
前言 對於Jar包衝突問題,我們開發人員經常都會有碰到,當我們使用一些jar包中的類、方法等,或者有時遇到一些日誌系統的問題(參考另一篇文章Jar包衝突導致的日誌問題),我們會遇到ClassNotFoundException,NoSuchFieldException,NoSuchMethodExcept
tomcat啟動報錯jar包衝突解決方法
從公司的原始碼庫中同步程式碼之後,再啟動tomcat,出現了下面兩張圖的狀況,由於之前的啟動環境是同事給配好的,因此這次打算靠自己解決了。 1、servlet.jar的問題 情景重現: 圖中已經標註出來,檢測servet.jar和servlet_old.jar包時遇到了
jar包衝突及解決步驟
轉載:https://www.cnblogs.com/godtrue/p/6220512.html 報錯資訊 十二月 14, 2016 7:52:34 下午 org.apache.catalina.core.ContainerBase addChildInternal 嚴重: Contain
解決maven jar包衝突,使用python指令碼檢查
在mvn工程中,經常因為多級引入導致jar包衝突,然後會使用 mvn dependency:tree>dependency.txt 匯出mvn依賴樹關係 , 然後從dependency.txt檔案中解析出衝突的jar包即可。解析的
解決jar包衝突通用方法彙總
1.問題 先
【maven】排除maven中jar包依賴的解決過程 例子:spring cloud啟動zipkin,報錯maven依賴jar包衝突 Class path contains multiple SLF4J bindings.
一直對於maven中解決jar包依賴問題的解決方法糾結不清: 下面這個例子可以說明一個很簡單的解決方法: 專案啟動報錯: Connected to the target VM, address: '127.0.0.1:59412', transport: 'sock
【maven 】jar包衝突-記一次衝突解決
1、請到pom.xml檔案所在的目錄(包含父子目錄)下分別執行下面的命令排查是什麼原因導致fastjson版本不正確: mvn dependency:tree -Dverbose -Dincludes=com.alibaba:fastjson 2、配合excusions標籤排除過時的包 &n