快速业务通道

用JAX-RPC构建RPC服务和客户机:使用Java API构建基于RPC的Web服务(一) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
>

用JAX-RPC构建RPC服务和客户机:使用Java API构建基于RPC的Web服务(一)(16)

时间:2011-08-02 IBM Brett McLaughlin

这个 WSDL 很详细,也相当长。但是,它是理解 Web 服务和连接 Web 服务的代码的关键。本教程的 下一节详细分析这个 WSDL,为编写远程搜索图书的代码做准备。

分析 WSDL 来理解服务

如果仔细看看上一节中的 WSDL,就可以看出 WSDL 究竟描述了什么。但是请牢记,在许多情况下,您 无法获得要使用的服务的源代码。您得到的只有 WSDL。在这种情况下,理解 WSDL 对于正确有效地使用 RPC 服务(或任何其他类型的 Web 服务)非常重要。

WSDL 包含大量名称空间信息

程序员和文档作者常常不重视(甚至完全忽视)WSDL 文件中的根元素声明。但是,在 WSDL 中,这个 声明包含大量信息,见清单 11:

清单 11. 根元素声明

<wsdl:definitions  targetNamespace="http://localhost:8080/axis/BookSearcher.jws"    xmlns:apachesoap="http://xml.apache.org/xml-soap"   xmlns:impl="http://localhost:8080/axis/BookSearcher.jws"   xmlns:intf="http://localhost:8080/axis/BookSearcher.jws"   xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"   xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"   xmlns:xsd="http://www.w3.org/2001/XMLSchema">

每个 xmlns: 属性定义一个名称空间和相关联的前缀。所以这里有 Apache SOAP 名称空间、SOAP 编 码名称空间、WSDL 和 WSDL SOAP 名称空间、XML Schema 名称空间等等。还设置了目标名称空间,它的 统一资源定位符(URI)是代表发布的服务的 JWS 文件。

好消息是,尽管这些名称空间对于 SOAP、RPC、Axis、XML 和在 Web 服务中使用的几乎所有其他技术 都很重要,但是不需要太为它们操心。WSDL 中的大多数元素由一个 WSDL 规范定义并与 wsdl 前缀相关 联,XML Schema 名称空间(以及相关联的类型)与 xsd 前缀相关联,知道这些就够了。其他名称空间也 有用,但是在编写有效的 Web 服务客户机时不需要理会它们。

WSDL 定义基于对象的类型

WSDL 的下一个关键部分包含在 <wsdl:types> 元素中,见清单 12:

清单 12. <wsdl:types> 元素

<wsdl:types>   <schema targetNamespace="http://xml.apache.org/xml-soap"       xmlns="http://www.w3.org/2001/XMLSchema">    <import namespace="http://localhost:8080/axis/BookSearcher.jws"/>    <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>    <complexType name="mapItem">    <sequence>     <element name="key" nillable="true" type="xsd:anyType"/>     <element name="value" nillable="true" type="xsd:anyType"/>    </sequence>    </complexType>    <complexType name="Map">    <sequence>     <element maxOccurs="unbounded" minOccurs="0"         name="item" type="apachesoap:mapItem"/>    </sequence>    </complexType>    <complexType name="Vector">    <sequence>     <element maxOccurs="unbounded" m

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号