繁体   English   中英

从Web服务返回单个结果,但是返回多种类型? 在Java中?

[英]Returning Single Result, But Multiple Types From Web Service? In Java?

我需要从Web服务返回多个值,因为...

Object GetResults(){}

对象可以是几种不同的类型。 如何将这些已知类型添加到Web服务合同中? 有没有可以用来装饰界面的注释?

注意:我将Java与CXF,Aegis和Annotations一起使用。

相同问题的另一个变体是返回抽象类,但需要发送具体类型。

Employee getEmployee(string name) {}

abstract class Employee {}

class SalariedEmployee extends Employee {}

WCF.NET中,有一个称为KnownTypes的功能可以处理这些情况。
Java中是否存在带有CXFAegis和Annotations的类似内容?

JAXB中有一个名为@XmlSeeAlso的注释。 这可用于用子孙类型装饰Employee基类。 不幸的是,宙斯盾数据绑定没有利用该注释。 但是,CXF中的默认JAXB数据绑定确实遵守此注释。 这解决了上面的SalariedEmployee方案。 等效于.NET的KnownType属性。

不幸的是,在第一个用例中,我们返回一个Object并需要确保从Web服务返回的所有有效类型都在WSDL中表示,这对于代码优先开发似乎不太可能。 在.NET中,您可以使用ServiceKnownType属性公开这些类型。 不幸的是,这在使用代码优先开发的Java中似乎是不可能的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM