com.fasterxml.jackson.databind.exc.MismatchedInputException:无法从START_OBJECT令牌中反序列化java.lang.Long实例

问题描述

使用Rest Assure确保进行API测试

StudentDTO responseDTO =
                given().
                        log().ifValidationFails().
                        accept("application/hal+json").
                        contentType("application/json").
                        body(requestDTO).
                when().
                        post("/app/students").
                then().
                        log().ifValidationFails().
                        statusCode(201).
                        extract().as(StudentDTO.class); 

extract()。as(StudentDTO.class)抛出

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.Long` out of START_OBJECT token

at [Source: (String)"{"content":{"id":338,"name":"Student777",allowed":true,"coreUpdate":false,"validity"[truncated 1631 chars]; line: 1,column: 1414] (through reference chain: com.app.rest.api.model.StudentDTO["id"])

Rest保证版本为3.1.0

在Spring Boot版本1.5.14.RELEASE中可以正常工作

更新为2.0.9和

   <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.8.11</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.8.11</version>
    </dependency>

这些依赖关系从2.8.11更改为2.9.8

https://github.com/spring-projects/spring-hateoas/issues/1306中看到了与此问题相关的链接

但是他们使用的是Spring Hateoas 1.1.0.RELEASE,它完全不同,我正在使用的Spring Hateoas是0.25.1。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)