【发布时间】:2020-05-01 04:08:09
【问题描述】:
当使用 Spring 的 RestTemplate 将一些 JSON 响应反序列化为对象时,我没有这样做,因为我使用 Kotlin 数据类作为我的对象模型。
这是数据类:
data class Description (
val descriptionShort: String,
val descriptionLong: String,
val productGroupName: String,
val shortDescriptionProductGroup: String,
val descriptionProductGroupMarketing: String
)
我使用这些依赖项:
dependencies {
implementation("org.springframework.boot:spring-boot-starter-webflux")
//others
}
dependencyManagement {
imports {
mavenBom("org.springframework.boot:spring-boot-dependencies:2.2.0.RELEASE")
//others
}
dependencies {
dependency("org.springframework.cloud:spring-cloud-stream-reactive:2.2.1.RELEASE")
dependency("com.fasterxml.jackson.module:jackson-module-kotlin:2.10.2")
//others
}
}
执行涉及 RestTemplate 逻辑的单元测试时的错误信息:
原因:com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法构造
com.company.importer.customer.converter.ut.Description的实例(没有像默认构造一样的创建者):无法从对象值反序列化(没有基于委托或基于属性的创建者)
【问题讨论】: