保留SOAP结果的排序顺序

时间:2011-06-30 18:35:36

标签: java web-services soap

我使用JAX-WS构建了一个SOAP服务,它返回了许多排序结果,这些结果基本上按照客户认为美观的顺序排序。我的后端处理没有问题,结果是按照正确的顺序进行的。现在,由wsimport生成的客户端片段在接收到这些结果时正在使用ArrayLists,这些结果不能保证在迭代时保留顺序。有没有办法改写这个?或者甚至更好的东西,我可以在架构中的SOAP端做什么,告诉任何客户端它需要保留订单? (因为我知道我很快就要做一个C#客户端了)

TIA !!

1 个答案:

答案 0 :(得分:3)

  

在收到这些结果时使用ArrayLists,但不保证在迭代时保留顺序。

这个假设来自哪里?

java.util.List interface represents an ordered collection。集合中元素的顺序至关重要。在迭代时没有返回集合中元素的正确顺序的任何java.util.List实现都会破坏接口的契约。

The Javadoc for the List.iterator()方法状态(强调我的):

  

正确序列中返回此列表中元素的迭代器。

ArrayList返回的迭代器不违反此规则。它以与底层数组相同的顺序向您返回元素。