记录一下: 异常信息如下: java.lang.IncompatibleClassChangeError: Found interface xx.xxx, but class was expected
原因是自jdk1.8以后支持接口缺省方法。
JavaBeanSerializer系列化正常,使用ASMJavaBeanSerializer则报错。
类的上层接口有default方法没有被实现,导致此方法依旧属于接口,引起的序列化异常。
解决方案:
禁用ASMJavaBeanSerializer就好了。
我是在初始化的时候禁用的:
static{
//禁止fastjson使用asm反系列化
ParserConfig.getGlobalInstance().setAsmEnable(false);
SerializeConfig.getGlobalInstance().setAsmEnable(false);
}
官方说1.2.9版本就支持这个东西了, 慢慢等吧