Web 服务编程技巧与窍门: 协同使用集合与 SOAP 和 JAX-RPC
2010-03-23 00:00:00 来源:WEB开发网正如您可以看到的,该工具为一些称为 ArrayOfXSDAnyType 的类型生成了复杂类型的定义,而它又是类型 <xsd:anyType> 的一个未绑定序列。它为什么生成 xsd:linkedList 类型的元素来包含您的 Customers 对象?这是因为没有 xsd:linkedList 。也没有 xsd:hashMap 、 xsd:treeSet 、 xsd:vector 和 xsd:stack 。所有这些虚构的类型除了可以存储有序的对象列表外,还具有一些与它们相关的隐含功能。每种语言、工具或环境都可以自由地提供任意的集合构造来完成下列工作:
实现隐含功能的变体
省去这种类型的集合
定义没有包括在 Java 集合中的其他类型
那么,您如何以互操作的方式交换对象集合呢?答案是使用数组。
解决方案?普通数组……
虽然一些可能确实能够在您的特定环境(比如 Java 到 Java 的环境)中正常工作,但是在其他的环境中却不尽然。因此,我们建议不要在服务接口上使用这些类。在 Web 服务之间转换对象集合的唯一方法是将其作为数组。WS-I 基本概要(WS-I Basic Profile)描述了如何将数组(它仍然是特定于语言的构造)映射到 XML、以及如何在 XML 模式中对此进行描述,以使得它的处理在多个环境中可互操作。 清单 3 显示了经过修改的 CustomerService JavaBean 看起来像什么:
清单 3. 使用简单数组的 CustomerService 类
public class TheCustomerService {
public Customer[] getCustomers(String queryString) {
Customer customer1, customer2;
/* ... retrieve customers for query ... */
/* create an array large enough to hold the result set */
Customer[] customers = new Customer[2];
/* iterate over the result set assigning to the array */
customers[0] = customer1;
customers[1] = customer2;
return customers;
}
}
- ››web安全之信息刺探防范1
- ››webqq 最新加密算法
- ››webdriver 数据库验证方法
- ››服务层
- ››WebSphere Application Server 7.0 XML Feature P...
- ››Web2.0网络时代基于社会影响力的声望值
- ››Web服务器搭建:配置Linux+Apache+Mysql+PHP(或Pe...
- ››WebLogic调整Java虚拟机性能优化参数
- ››webqq2.0协议研究(3)-ClientId生成
- ››Web.config配置文件
- ››WebBrowser组件的execWB方法——Delphi控制浏览器...
- ››Web前端设计模式--制作漂亮的弹出层
更多精彩
赞助商链接