快速业务通道

设计与开发JAX-WS 2.0 Web服务 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
个示例 SOAP 请求消息,此消息是在 Web 服务客户机调用 processOrder 操作时发送的。

设计与开发JAX-WS 2.0 Web服务(6)

时间:2011-01-26 IBM Naveen Balani

清单 11. processOrder 操作的示例 SOAP 消息

<?xml version="1.0"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1=" http://jawxs.ibm.tutorial/jaxws/orderprocess" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soapenv:Body> <ns1:processOrder> <arg0> <customer><customerId>A123</customerId> <firstName>John</firstName><lastName>Smith</lastName></customer> <orderItems><itemId>11</itemId><qty>11</qty></orderItems> </arg0> </ns1:processOrder> </soapenv:Body> </soapenv:Envelope>

创建 Web 服务客户机

从 WSDL 创建 Web 服务客户机

在本部分,我们将了解如何从 WSDL 创建 Web 服务客户机。JAX-WS 提供了名为 wsimport 的工具,用于从 WSDL 生成 JAX-WS 可移植构件。生成的可移植构件通常包括以下内容:

SEI

服务(需要实现的服务实现类)

从模式类型生成的 JAXB 生成类

从 wsdl:fault 映射的异常类(如果有)

客户机使用生成的构件调用 Web 服务。Web 服务客户机并不需要处理任何 SOAP 格式(如创建或解析 SOAP 消息)。这将由 JAX-WS 运行时予以处理,此运行时将使用生成的构件代码(JAXB 生成类)。Web 服务将处理 Java 代码(JAXB 生成类),从而减少了开发 Web 服务客户机和对 Web 服务调用操作的工作。

先使用 wsimport 工具从 OrderProcess WSDL 生成 JAX-WS 构件。然后要创建 Web 服务客户机,后者使用生成的构件代码调用订单处理 Web 服务。要生成 JAX-WS 构件,贤进入到 JAXWS-Tutorial 目录,并运行清单 12 中所示的 wsimport 命令。不过,进行操作前,请确保已经按照生成 JAX-WS 构件部分中的步骤 5 所述的方法,通过运行 OrderWebServicePublisher 发布了 Web 服务。

清单 12. 用于生成供 Web 服务客户机使用的 JAX-WS 构件的 wsimport 命令

wsimport -keep -p com.ibm.jaxws.tutorial.service.client    http://localhost:8080/OrderProcessWeb/orderprocess?wsdl

-keep 选项指示保留生成的文件,-p 选项指定需要在其中生成构件的包名称。http://localhost:8080/OrderProcessWeb/orderprocess?wsdl 指定 WSDL 文件的位置。以下构件是从 OrderProcessService WSDL 生成的:

JAXB 类(Address、Customer, OrderBean 和 OrderItem):通过读取 OrderProcessService WSDL 中定义的模式定义生成

RequestWrapper 和 ResponseWrapper 类(ProcessOrder 和 ProcessOrderResponse):包装 document literal-wrapped 样式类型的输入和输出

服务类 (OrderProcess):客户机用于请求 Web 服务的类

服务接口 (OrderProcessService):包含着用于服务实现接口的类

设计与开发JAX-WS 2.0 Web服务(7)

时间:2011-01-26 IBM Naveen Balani

接下来了解一下如何使用上面生成的构件创建 Web 服务客户机。com\ibm\jaxws\tutorial\service\client文件夹中提供了一个示例参考代码。Web 服务客户机的代码如清单 13 中所示。

清单 13. 订单处理 Web 服务客户机的代码清单

package com.ibm.jaxws.tutorial.service.client; import java.net.MalformedURLException; import java.net.URL; import javax.xml.namespace.QName; public class OrderClient {    final QName qName = new QName(

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号