2015-02-09 67 views
1

我將Apache CXF嵌入到我的Grails Web應用程序中,以便通過SOAP公開服務。我對框架還不是很熟悉,但我認爲它能夠使用任何POJO/POGO作爲結果和/或參數,它們必須用JAXB註釋。我已經創建了一個演示服務,這種服務向我證實了這一點。我也從這個StackOverflow關於獲得Groovy and JAXB to play nice的問題中得到了一些信息。現在,我的問題特別是關於在Grails域類中註釋關聯。我怎麼做?如何使用JAXB註釋Grails域類中的關聯?

在不可能的情況下,我正在考慮爲SOAP服務需要的每個域類創建一些相應的DTO。這可能不是最好的做法,但它似乎並不那麼糟糕......是嗎?

+0

我已經嘗試了鏈接StackOverflow問題上的答案給出的方法。我的問題尤其是如何註釋'static hasMany = [books:Book,authors:Author]''等屬性。 – 2015-02-09 10:21:27

回答

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 

}