[alibaba/fastjson]升级到1.2.61版本出现的问题

2024-08-28 468 views
9

java.lang.NoSuchMethodError: com.alibaba.fastjson.serializer.MapSerializer.processValue(Lcom/alibaba/fastjson/serializer/JSONSerializer;Lcom/alibaba/fastjson/serializer/BeanContext;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;I)Ljava/lang/Object; at com.alibaba.fastjson.serializer.MapSerializer.write(MapSerializer.java:200) at com.alibaba.fastjson.serializer.MapSerializer.write(MapSerializer.java:44) at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:285) at com.alibaba.fastjson.JSON.toJSONString(JSON.java:960)

请问这个是什么鬼,明明这个类里边可以找到这个processValue方法,后边的参数类型也都对的上

回答

6

能给个简单的用例吗 以及升级前的版本情况

4

感觉是版本问题 有点像是jar冲突了

5

1.2.61 现在中央仓库还没有吧

1

检查下是不是多个版本共存了?

6

没有多个版本,只有一个版本,

9

你这个肯定就是编译时引用的一个版本,运行时加载的另一个版本,你在idea中搜索一下这个文件肯定存在两个或者两个以上

5

可以用arthas上去看一下实际运行的 比如如果你是tomcat项目 说不准原来的tomcat的lib放了一个fastjson

3

我也遇到这个问题了,不过不是版本的问题。 是redisTemplate里面setValueSerializer设置的问题。 原来用的1.2.28版本的时候都正常,换成1.2.61之后就不行了。 定位到是setValueSerializer的问题,换成FastJsonRedisSerializer问题搞定。