Java Web服务,第3部分: Axis2数据绑定 - 编程入门网
gt;
<wsdl:input message="wns:getBookRequest" name="getBookRequest"/>
<wsdl:output message="wns:getBookResponse" name="getBookResponse"/>
</wsdl:operation>
...
</wsdl:portType>
<wsdl:binding name="LibrarySoapBinding" type="wns:Library">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getBook">
<wsdlsoap:operation soapAction="urn:getBook"/>
<wsdl:input name="getBookRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getBookResponse">
<wsdlsoap:body use="literal"/>vi
</wsdl:output>
</wsdl:operation>
...
</wsdl:binding>
...
</wsdl:definitions>
Java Web服务,第3部分: Axis2数据绑定(6)时间:2011-04-09 IBM Dennis Sosnoski实际的服务实现代码非常简单,即采用硬编码书籍清单填充图书馆实例。客户机代码按照 以下顺序执行一系列查询: 一个 getBook 一个 getTypes 两个 addBook,第二个返回尝试添加重复书籍 ID 的 SOAP 错误 一个 getBooksByType 示例间的实现细节有所差别,因为每个示例使用适合于其数据绑定的数据对象。除非专门 说明,否则所显示的所有代码对 Axis2 1.1.1 和 1.2 都完全一样。Axis2 1.3 版(撰写本 文时正在进行开发)要求对代码进行一些小的更改,因为其中与服务错误对应的生成异常类 的命令发生了变化。提供了两个版本的代码供下载(请参见下载部分)。 在本文中,我们将仅讨论客户机代码,不过提供的下载(请参见下载部分)包括了所有示 例的客户机和服务器代码以及 Ant 构建文件。接下来,让我们分析三个数据绑定框架对应的 客户机代码,了解每种方法的优缺点。 Axis2 数据绑定 ADB 是 Axis2 的数据绑定扩展。与其他数据绑定框架不同,ADB 代码仅可用于 Axis2 Web 服务。这个限制是 ADB 的一大局限,但也带来了一些好处。由于 ADB 与 Axis2 进行了 集成,因此其代码可针对 Axis2 要求进行优化。这方面的一个例子就是,ADB 构建于位于 Axis2 核心的 AXis 对象模型(AXis Object Model,AXIOM)文档模型(我们已在本系列的 前一篇文章中对此进行了讨论)之上。ADB 还提供了一些目前其他数据绑定框架所没有的增 强功能,包括自动附件处理。WSDL2Java 提供了对 ADB 代码生成的全面支持,其中包括生成 与 XML 模式组件对应的数据模型类。 ADB 模式支持具有一定的局限。在当前的 Axis2 1.2 版本中,这些局限包括模式功能, 如使用 maxOccurs="unbounded" 的组合器、使用 attributeFormDefault="qualified" 的模式定义和其他一些类似的变体。但 Axis2 1.2 ADB 模式支持比 Axis2 1.1 版要好得多,而且此支持 Axis2 框架的每个发布版 本将逐步改进,直到支持所有主要模式功能为止。 ADB 代码生成的基本形式是使用直接模型,其中包含与每个操作使用的输入与输出消息对 应的独立类。清单 5 显示了使用此基本 ADB 代码生成模式的示例应用程序的客户机代码中 最有意义的部分。此客户机代码说明了与 ADB 生成的类的交互,如用作 getBook() 方法调 用的参数的 GetBookDocument 和 GetBookDocument.GetBook 类以及用于从此调用获取返回 结果的 GetBookResponseDocument 和 BookInformati |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |