引入jar包时出现了版本冲突
不同的jar,class路径完全相同,本地可以运行,测试就挂掉
Caused by: java.lang.NoSuchMethodError: org.codehaus.jackson.type.JavaType.<init>(Ljava/lang/Class;)V
at org.codehaus.jackson.map.type.SimpleType.<init>(SimpleType.java:32)
at org.codehaus.jackson.map.type.TypeFactory._fromClass(TypeFactory.java:254)
at org.codehaus.jackson.map.type.TypeFactory._fromType(TypeFactory.java:266)
at org.codehaus.jackson.map.type.TypeFactory.type(TypeFactory.java:57)
at org.codehaus.jackson.map.ObjectMapper.<clinit>(ObjectMapper.java:49)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory
1.把测试环境的报错拷贝到控制台,发现在两个包可以用
E:repository\org\codehaus\jackson\jackson-mapper-lgpl\1.4.0\jackson-mapper-lgpl-1.4.0.jar!\org\codehaus\jackson\map\ObjectMapper.class
E:repository\org\codehaus\jackson\jackson-mapper-asl\1.9.13\jackson-mapper-asl-1.9.13.jar!\org\codehaus\jackson\map\ObjectMapper.class
2.原来是新引入的包中包含了另一个ObjectMapper.class,只需要不使用新jar中的ObjectMapper.class就可以了
修改
<dependency>
<groupId>com.</groupId>
<artifactId>-starter</artifactId>
<version>3.1.5.x</version>
</dependency>
改为
<dependency>
<groupId>com.</groupId>
<artifactId>-starter</artifactId>
<version>3.1.5.x</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-lgpl</artifactId>
</exclusion>
</exclusions>
</dependency>