JAXB Spring Boot JaxbContextContainer和Kotlin数据类无参数构造函数

s2j5cfk0  于 2022-11-29  发布在  Spring
关注(0)|答案(1)|浏览(148)

我有一个数据类XmlRootElement

import jakarta.xml.bind.annotation.XmlAccessType
import jakarta.xml.bind.annotation.XmlAccessorType
import jakarta.xml.bind.annotation.XmlElement
import jakarta.xml.bind.annotation.XmlRootElement

@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
data class Rss(
    @field:XmlElement
    val channel: Channel
)

当我的WebClient尝试反序列化RSS源时,我得到:

Caused by: org.glassfish.jaxb.runtime.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
com.example.rss.model.Rss does not have a no-arg default constructor.
    this problem is related to the following location:
        at com.example.rss.model.Rss
hs1ihplo

hs1ihplo1#

你可以使用无参数编译器插件。它会为类生成一个额外的零参数构造函数,带有特定的注解。我认为在你的情况下@XmlRootElement是一个很好的候选者。
它可以在Maven或Gradle中轻松配置。
关于如何配置的文档-〉https://kotlinlang.org/docs/no-arg-plugin.html

相关问题