Jackson ObjectMapper() 构造函数抛出 NoSuchMethod

2022-09-01 22:34:41

我正在使用 Jackson 示例代码来反序列化 POJO:

ObjectMapper m = new ObjectMapper();

这行抛出了一个NoSuchMethodError:

Exception in thread "main" java.lang.NoSuchMethodError: org.codehaus.jackson.type.JavaType.<init>(Ljava/lang/Class;)V
    at org.codehaus.jackson.map.type.TypeBase.<init>(TypeBase.java:15)
    at org.codehaus.jackson.map.type.SimpleType.<init>(SimpleType.java:45)
    at org.codehaus.jackson.map.type.SimpleType.<init>(SimpleType.java:40)
    at org.codehaus.jackson.map.type.TypeBindings.<clinit>(TypeBindings.java:18)
    at org.codehaus.jackson.map.type.TypeFactory._fromType(TypeFactory.java:525)
    at org.codehaus.jackson.map.type.TypeFactory.type(TypeFactory.java:61)
    at org.codehaus.jackson.map.ObjectMapper.<clinit>(ObjectMapper.java:179)
    at com.me.util.ctrl.BillingJobStatus.fromJson(BillingJobStatus.java:37)

我不明白


答案 1

我猜你的Jackson JAR不同步了。该类位于 JAR 中,该类位于 中。JavaTypejackson-coreObjectMapperjackson-mapper

确保两者的版本相同。


答案 2

我也有同样的问题。核心罐是1.7.1,而映射器是1.8.1。注意:为了修复maven的问题,我添加了一个排除项并下拉了正确的版本。

        <exclusions>
            <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
            </exclusion>
        </exclusions>