Spring的启动杰克逊错误我有一个非常奇怪的问题,使用Maven的Spring-boot 1.5.2构建war包,它与Jackson依赖关系有错误,仅在Ubuntu 16.04上,因为我使用的是另一个Centos 7,并且没有将应用程序打开为war或jar文件的问题。与Maven的war文件,但没有jar文件与com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z
与Maven构建到JAR或战争结束后,我可以运行内置包
javar -jar target/project.war (or project.jar)
和嵌入式Tomcat将启动。也可以将war包部署到Centos 7的webapps目录中的外部Tomcat。对于Ubuntu 16.04,我只能运行Tomcat嵌入的.jar文件,而不能使用Tomcat Embedded/External运行war文件。
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.web.filter.OrderedHttpPutFormContentFilter]: Factory method 'httpPutFormContentFilter' threw exception; nested exception is java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
... 26 more
Caused by: java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z
at com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:564)
at com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:474)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build(Jackson2ObjectMapperBuilder.java:588)
at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.<init>(MappingJackson2HttpMessageConverter.java:57)
at org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter.<init>(AllEncompassingFormHttpMessageConverter.java:61)
at org.springframework.web.filter.HttpPutFormContentFilter.<init>(HttpPutFormContentFilter.java:63)
at org.springframework.boot.web.filter.OrderedHttpPutFormContentFilter.<init>(OrderedHttpPutFormContentFilter.java:29)
at org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration.httpPutFormContentFilter(WebMvcAutoConfiguration.java:142)
这里是POM文件https://pastebin.com/13MwTm89我只能从杰克逊再添依赖于XML反序列化到对象。
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.8.7</version>
</dependency>
这里是杰克逊
mvn dependency:tree | grep 'jackson'
[INFO] +- com.fasterxml.jackson.dataformat:jackson-dataformat-xml:jar:2.8.7:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-core:jar:2.8.7:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.8.0:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.8.7:compile
[INFO] | +- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.8.7:compile
为什么使用'jackson-annotations:jar:2.8.0',其余的都是2.8.7? – StanislavL
这不是从我这里,它是从Spring引导依赖父。 –
尝试降级您的版本。或者排除弹簧的依赖关系,并添加正确版本 – StanislavL