具有单一属性的RequestBody对象spring-boot

问题描述 投票:0回答:1

语言:Kotlin,Spring 版本:3.2.3
我有一个控制器,它提供一个具有单一属性的对象:

@RestController
@RequestMapping("")
class Test {

   @PostMapping("khar")
   fun khar(@RequestBody body: UserByTokenRequest): String {
       return body.apiToken
   }
}

class UserByTokenRequest(val apiToken: String)

我调用它,但我得到“错误请求”,状态代码为400,服务器的日志是:

警告 o.s.w.s.m.s.DefaultHandlerExceptionResolver:247 - 已解决 [org.springframework.http.converter.HttpMessageNotReadableException: JSON 解析错误:无法构造实例

ir.police.policecore.userclass.model.dto.UserByTokenRequest
(尽管至少存在一个 Creator):无法从 Object 反序列化 值(无基于委托或基于属性的创建者)]

当我向“UserByTokenRequest”添加另一个属性或仅向该属性添加

@JsonProperty
时,问题就会消失,并且我会得到响应。

我只是想知道为什么它不适用于单一属性。

spring spring-boot kotlin spring-mvc
1个回答
0
投票

请检查依赖项列表中是否有“com.fasterxml.jackson.module:jackson-module-kotlin”。此依赖项允许 Spring Boot 中默认使用的 Jackson 反序列化器与 Kotlin 类一起使用。

© www.soinside.com 2019 - 2024. All rights reserved.