你能从JAX-WS @WebMethod返回一个数组吗?

我很确定你可以,但除了回答标题中的问题之外,你还可以解释这些问题的优点,缺点,警告(如果有的话)吗? 我知道你不能从WebMethod返回List,Set,Collection,Map或任何接口(这是愚蠢的,IMO,但我不知道设计原因是什么,我应该拒绝判断)。

谢谢你的建议。

– LES

你可以返回数组,我发现它们很有用。

集合是一个问题的主要原因是某些语言(如C)不理解集合的概念,因此,为了保持可移植性,您需要确保传递可以用大多数语言表示的结构。

此外,我从不擅长传递集合,因为来自Web服务的内容应该是相当静态的。 如果要添加它,则将数组转换为集合,然后将数组传递回Web服务以进行更改。

詹姆斯是对的,你可以返回数组。 您还可以返回集合类型。 wsdl将类型定义为列表。 但是,大多数客户端会将类型转换为数组(至少这是我在C#中使用JAX-WS服务所做的)。

我使用第三方(Apache Axis2)来生成Web服务,我遇到了一个奇怪的问题,即wsdl没有被正确读取,并且消费者无法正确地反序列化数组。 有必要创建一个装饰器对象,它只包含数组对象,并从web方法返回。

我认为这只是Axis2与.NET Web服务互操作程序不兼容,但需要注意的事项。