Web服务定义中的抽象类型(wsdl)

时间:2009-08-05 18:14:32

标签: java web-services

我正在使用框架xFire在我的Web应用程序中发布web服务。在这个服务中,我在List< GlobaleType>等操作中使用抽象返回类型。操作具体返回值是ArrayList< SpecialType>。

具体类SpecialType扩展了抽象类GlobaleType。在生成的WSDL文档中,只给出了GlobaleType,附加定义为abstract =“true”。生成的客户端(在apache轴的帮助下)只创建一个抽象类GlobaleType,它不能用于实例化。

有人知道为什么wsdl合同错了吗?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您的网络方法签名是:

public List<GlobaleType> doSomething(args)

然后正确生成你的wsdl。只要apache轴知道SpecialType扩展了GlobalType,那么最终类型就可以通过webservice发送,并且多态将从Web服务转移到客户端。

您使用的是JAX-WS Web服务吗?然后确保在基类型上使用@XmlSeeAlso注释。