我需要返回一个web服务的多个值,作为.
Object GetResults(){}对象可以是几种不同的类型。如何将这些已知类型添加到web服务合同中?有什么注释可以用来装饰我的界面吗?
注意:我在CXF、Aegis和注释中使用Java。
相同问题的另一个变体是返回一个抽象类,但需要发送一个具体类型。
Employee getEmployee(string name) {}
abstract class Employee {}
class SalariedEmployee extends Employee {}在、WCF、和.NET中,有一个名为KnownTypes的特性来处理这些场景。
在带有注释的和CXF、Aegis中有类似的东西吗?
发布于 2015-08-23 08:38:49
JAXB中有一个名为@XmlSeeAlso的注释。这可用于用子代类型装饰您的员工基类。不幸的是,Aegis数据库没有利用这个注释。但是,CXF中的默认JAXB数据库确实尊重此注释。这解决了上面的SalariedEmployee场景。与此等价的是.NET是KnownType属性。
不幸的是,在第一个用例中,我们返回一个对象并需要确保所有可以从web服务返回的类型都在WSDL中表示,这似乎不可能在代码优先开发中实现。在.NET中,您可以使用ServiceKnownType属性公开这些类型。不幸的是,在Java中,使用代码优先开发似乎不可能做到这一点。
https://stackoverflow.com/questions/32071781
复制相似问题