奇怪问题:Jersey 竟然报加载fastjson 的错误:java.lang.NoSuchFieldError: UTF8
今天同事遇到一个奇怪的问题(项目是spring-cloud,集成了Fastjson工具),错误图如下:
看了下很奇怪,其他工程都是同样的结构,都没不会报这样的错误。
为什么jersey会跟fastjson有关联呢?
用的jersey的版本是1.19.1,fastjson是1.2.58,初步怀疑是2者版本不兼容。
查了下fastjson的资料,原来是fastjson在1.2.36后,加入JerseyAutoDiscoverable的实现,在jersey启动的时候,会自动去加载FastJsonProvider。
由于当前项目的jersey版本不能升级,将fastjson的版本降为1.2.32,问题解决。
总结:遇到这种问题,选择检查项目中的jar包是否有冲突,有选解决。