昨天接到公司新的需求,说是要整合之前老的项目,想想都头疼,因为很讨厌看别人写的代码。
况且老项目真的是要多垃圾有多垃圾,没有注释,而且类名也没有驼峰命名规范,简直乱写一通。
终于明白那个美国程序员因同事没有驼峰命名而一怒之下就掏枪了。
好了废话不多说,说下遇到的问题。
因为要给前端返回json数据,在pom文件中引入了jackson的包,启动项目的时候就一直报错
java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/exc/InvalidDefinitionException。
简直头大,一开始以为是缺少jackson的jar包,看了一下,基本上都有。
最后终于解决了。
java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/exc/InvalidDefinitionException
此信息为spring和jackson相关版本不兼容
我使用的是Spring5.0.8版本,把本地jsckson版本升到2.7.5以上或者更高即可
Spring为4.3.2兼容jackson版本为2.7.5和更高版本,相关依赖如下:
<!--jackson依赖--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.5</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.5</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.5</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-jaxb-annotations</artifactId> <version>2.9.5</version> </dependency>