异常信息
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.empty()Lcom/fasterxml/jackson/annotation/JsonFormatValue;
异常场景
- 系统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 引用其中一个即可,避免引用混乱或版本升级时造成其他意想不到的异常