1. 程式人生 > >Jar包衝突解決

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