1. 程式人生 > >com.fasterxml.jackson.annotation.JsonFormat$Value.empty()Lcom/fasterxml/jackson/annotation/JsonForma

com.fasterxml.jackson.annotation.JsonFormat$Value.empty()Lcom/fasterxml/jackson/annotation/JsonForma

異常資訊

com.fasterxml.jackson.annotation.JsonFormat V a l u e . e

m p t y ( ) L c o m
/ f a s t e r x m l
/ j a c k s o n / a n n o t a t i o n / J s o n F o r m a t Value.empty()Lcom/fasterxml/jackson/annotation/JsonFormat Value;


異常場景

  • 系統A釋出到生產環境,執行時出現上述異常;測試環境無法復現
  • 檢查當日上線程式碼,重點關注依賴引用及版本變更
    • faster相關依賴無變更
    • 修改了內部系統B的依賴的版本號碼

排查步驟

  • 檢查是否MAVEN依賴衝突
  • 檢查是否MAVEN依賴重複
    • mvn -X compile dependency:tree -Dverbose >a.log
    • 檢視檔案中是否有 conflict 標記的JAR包依賴

異常解決

  • B系統中新增了fastJson的引用,升級了B的版本號,A引用B,間接引用了fastjson的依賴,與A中已有的發生衝突
  • A 中 pom.xml檔案中引入B依賴的位置增加 exclude 去掉 fastjson相關依賴
<exclusion> 	
	<groupId>com.fasterxml.jackson.core</groupId> 
	<artifactId>jackson-core</artifactId> 
</exclusion> 
<exclusion> 
	<groupId>com.fasterxml.jackson.core</groupId> 
	<artifactId>jackson-databind</artifactId> 
</exclusion>

異常反思

  • 輕量級引用,fastJson 引用其中一個即可,避免引用混亂或版本升級時造成其他意想不到的異常