你可以返回从JAX-WS @WebMethod一个数组?(Can you return an arr

2019-07-20 06:58发布

我敢肯定,你可以,但除了在标题回答这个问题,是否也能解释利弊,警告,如果有的话,这样做? 我知道你不能返回一个列表,组,集合,地图,或任何接口,从一个WebMethod(这是愚蠢的,海事组织,但我不知道是什么设计上的原因是应我也许应该保留的判断)。

感谢您的任何意见。

- THE

Answer 1:

您可以返回数组,我发现它们非常有用。

主要的原因是集合是一个问题是,有些语言,如C,不理解集合的概念,所以,保持便携式你需要做出一定的传递,可以在大多数的语言来表示的结构。

此外,我从来没有通过藏品的粉丝,因为,有什么从WebService来应该是相当静态的。 如果您要添加到它,然后将数组转换成集合,然后数组传递回Web服务进行更改。



Answer 2:

詹姆斯是正确的,你可以返回数组。 您也可以返回Collection类型。 该WSDL将定义类型为列表。 然而,大多数客户将类型转换为数组(至少这是我发现C#做了JAX-WS服务)。

我用了一个第三方(Apache的Axis2的)来生成Web服务,我碰到一个奇怪的问题,来到这里的WSDL没有被正确读取和数组不能被消费者正确地反序列化。 有必要创建一个装饰对象,它仅包含在数组对象和具有可以从所述的webmethod返回。

我认为,这只是Axis2中没有与.NET Web服务interpereter打得很好的事,但要注意的。



文章来源: Can you return an array from a JAX-WS @WebMethod?