我的(简化)情况:
服务 @WebService
Container getContainer()@ WebMethod
容器
void setObjects(ContainableObjects [] objects)
ContainableObjects [] getObjects()
ContainableObjects [abstract]
void setName(String name)
String getName()
void doSomething()
ContainedString [extends ContainableObjects]
void setValue(String value)
String getValue()
void doSomethingElse()
ContainedInt [extends ContainableObject]
void setValue(int value)
int getValue()
void doAnotherThing()
这些POJO对象已经存在。我正在使用Eclipse工具生成CXF代码。
目前,Service.getContainer将为我提供容器的表示。但是,CXF不会发送任何比ContainableObject对象中包含的信息更多的信息。因此,客户端不接收存储在子类中的值信息。
这种简化并没有完全显示使用子类的原因,但我向你保证这个原因存在。
显然,我需要告诉CXF有实现的子类。但是我该怎么做?
答案 0 :(得分:1)
经过一番研究,我找到了解决方案。
CXF文档可能非常简洁,但它所依赖的标准和框架的文档却不是。
对于这个问题,JAXB上的文档对我帮助很大。
实际解决方案: ContainableObject类需要注释: @XmlSeeAlso({ContainedString,ContainedInt})。