我在我的Grails Web应用程序中嵌入了Apache CXF,因此我可以通过SOAP公开服务。我对框架还不是很熟悉,但我认为它能够使用任何POJO / POGO作为结果和/或参数,它们必须用JAXB注释。我已经创建了一个演示服务,向我确认了这一点。我还从StackOverflow问题中获得了一些关于获取Groovy and JAXB to play nice的信息。现在,我的问题特别是关于在Grails域类中注释关联。我该怎么做?
在不可能的情况下,我正在考虑为我的SOAP服务所需的每个域类创建一些相应的DTO。它可能不是最好的做法,但它看起来并不那么糟糕......是吗?
答案 0 :(得分:1)
我了解到可以在Grails的域类中声明对任何关联的任何引用。例如:
class Book {
static hasMany = [categories: Category]
List categories
}
这允许我像往常一样用JAXB注释注释声明的字段。
@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
class Book {
static hasMany = [categories: Category]
@XmlElementWrapper
@XmlElement(name='category')
List categories
}