gpt4 book ai didi

java - cxf 公开抽象类的子类

转载 作者:太空宇宙 更新时间:2023-11-04 08:08:02 25 4
gpt4 key购买 nike

我的(简化的)情况:

服务 @WebService
容器 getContainer() @WebMethod

容器
void setObjects( ContainableObjects[] 对象 )
ContainableObjects[] getObjects()

ContainableObjects [摘要]
void setName(字符串名称)
字符串 getName()
无效 doSomething()

ContainedString [扩展 ContainableObjects]
void setValue(字符串值)
字符串 getValue()
无效 doSomethingElse()

ContainedInt [扩展 ContainableObject]
void setValue(int value)
int getValue()
无效 doAnotherThing()

这些 POJO 对象已经存在。我正在使用 Eclipse 工具生成 CXF 代码。

目前,Service.getContainer 将为我提供容器的表示形式。但是,CXF 不会发送比 ContainableObject 对象中包含的信息更多的信息。因此,客户端不会接收到子类中存储的值信息。

这种简化并不能完全说明使用子类的原因,但我向你保证这个原因是存在的。

显然,我需要告诉CXF有实现子类。但我该怎么做呢?

最佳答案

经过一番研究,我找到了解决方案。

CXF 文档可能非常简洁,但它所依赖的标准和框架的文档却不然。

对于这个问题,JAXB上的文档对我帮助很大。

实际解决方案:ContainableObject 类需要注释为:@XmlSeeAlso({ContainedString, ContainedInt})。

关于java - cxf 公开抽象类的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11740843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com