2012-07-31 79 views
1

我的(簡化的)情況的子類:CXF暴露抽象類

服務 @WebService
集裝箱getContainer()@WebMethod

集裝箱
空隙setObjects(ContainableObjects []對象)
ContainableObjects [] getObjects()

ContainableObjects [摘要]
空隙的setName(字符串名稱)
字符串的getName()
空隙doSomething的()

ContainedString [延伸ContainableObjects]
空隙的setValue(字符串值)
字符串的getValue()
空隙doSomethingElse()

ContainedInt [延伸Containa bleObject]
空隙的setValue(int值)
INT的getValue()
空隙doAnotherThing()已經存在

這些POJO對象。我正在使用Eclipse工具來生成CXF代碼。

目前,Service.getContainer會給我一個容器的表示。但是,CXF不會發送比包含在ContainableObject對象中更多的信息。因此,客戶端不會接收存儲在子類中的值信息。

這種簡化不完全說明使用子類的原因,但我向你保證這個理由存在。

顯然,我需要告訴CXF有實現的子類。但我該怎麼做?

回答

1

經過一番研究,我找到了解決辦法。

CXF文檔可能非常簡潔,但它所依賴的標準和框架的文檔不是。

對於這個問題,關於JAXB的文檔給了我很多幫助。

實際的解決方案: ContainableObject類需要註解: @XmlSeeAlso({ContainedString,ContainedInt})。