开发者社区> 问答> 正文

linux上 com.fasterxml.jackson.databind jar包使用报错

在centos7的服务器上部署springboot项目打包后的jar包,无法运行。 报错信息如下

2020-08-18 21:42:54.974 ERROR 1214 --- [           main] o.s.b.web.embedded.tomcat.TomcatStarter  : Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException. Message: Error creating bean with name 'formContentFilter' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.web.servlet.filter.OrderedFormContentFilter]: Factory method 'formContentFilter' threw exception; nested exception is java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.Module.getTypeId()Ljava/lang/Object;

***************************
APPLICATION FAILED TO START
***************************

Description:

An attempt was made to call a method that does not exist. The attempt was made from the following location:

    org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.registerWellKnownModulesIfAvailable(Jackson2ObjectMapperBuilder.java:796)

The following method did not exist:

    com.fasterxml.jackson.databind.Module.getTypeId()Ljava/lang/Object;

The method's class, com.fasterxml.jackson.databind.Module, is available from the following locations:

    jar:file:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre/lib/ext/jackson-databind-2.2.3.jar!/com/fasterxml/jackson/databind/Module.class
    jar:file:/root/springboot2-2.0.0.jar!/BOOT-INF/lib/jackson-databind-2.11.2.jar!/com/fasterxml/jackson/databind/Module.class

The class hierarchy was loaded from the following locations:

    com.fasterxml.jackson.databind.Module: file:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre/lib/ext/jackson-databind-2.2.3.jar


Action:

Correct the classpath of your application so that it contains a single, compatible version of com.fasterxml.jackson.databind.Module

com.fasterxml.jackson.databind包是由springboot的基础包导入的,所有jackson的包均为2.11.2版本。在测试中,仅仅简单的使用objectmapper对字符串进行json格式化这一操作。

@Controller
public class TestController {

    ConstantTypeDaoImpl constantTypeDao = new ConstantTypeDaoImpl();
    ObjectMapper mapper = new ObjectMapper();

    @RequestMapping(value = "/test")
    @ResponseBody
    public String test1() throws JsonProcessingException {
        List<ConstantType> constantTypes = constantTypeDao.getAll();
        return mapper.writeValueAsString(constantTypes);
    }
}

windows本地运行正常,但当在linux运行时便报错。望大佬能够指点迷津。

展开
收起
游客7s7r6y5wc7seg 2020-08-21 19:26:47 2134 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载