2012-07-31 68 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})。