我不能强迫Spring为Jackson使用Kotlin模块.
问题是Jackson无法将JSON解析为数据类.
//Exception
2018-02-23 13:29:09.046 ERROR 24730 --- [nio-9300-exec-1] o.a.c.c.C.[.[.[.[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [/services] threw exception [Request processing Failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [*.model.User]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: Parameter specified as non-null is null: method *.model.User.arameter name] with root cause
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method *.User.arameter name
//JSON
{
"name": "name","surname": "surname","email": "email","password": "pswd"
}
//Model
@Entity
@Table
data class User(
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
var userId: Long?,var name: String,var surname: String,var email: String,var password: String,(...)
): Resource() {
(...)
}
我试图配置杰克逊,但它没有多大帮助.有什么奇怪的,在我配置ObjectMapper的@Bean方法中,一切正常.
此外,当我为非可空字段添加默认值时,它们不会被覆盖.
@Configuration
class JacksonConfig {
@Bean
fun mappingJackson2HttpMessageConverter(): MappingJackson2HttpMessageConverter {
val mapper = ObjectMapper().registerKotlinModule()
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS,false)
var user = mapper.readValue
可能重要的是模型与应用程序本身在不同的项目中.
Kotlin版本是1.20
杰克逊依赖:
我现在尝试的是:
Similiar problem but probably different case anyway
还有一些其他的,不值得注意的.
最佳答案
我是愚蠢的,认真的.
我的结构如下:
abstract class AbstractController (...) {
fun save(@RequestMapping entity: T) {
(...)
}
并启用它我用过
class DeriveredController (...) {
@PostMapping
override fun save(entity: Derivered) {
(...)
}
}
问题在于导出函数中缺少@RequestMapping.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。