快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
位置和 JAX-WS Web 服务实现类。publish() 方法在指定的 URL(本例中为本地主机,端口为 8080)创建轻量级 Web 服务器,并将 Web 服务部署到该位置。此轻量级 Web 服务器在 Java 虚拟机(Java Virtual Machine,JVM)中运行,可通过调用 endpoint.stop() 方法以有条件的方式终止,或终止 OrderWebServicePublisher 客户机。

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

时间:2011-01-26 IBM Naveen Balani

分析生成的 WSDL

要查看生成的订单处理 Web 服务 WSDL,在浏览器中键入以下 URL 位置: http://localhost:8080/OrderProcessWeb/orderprocess?wsdl.

让我们分析 WSDL 一些重要方面的内容,并了解如何基于 JAX-WS 元数据生成 WSDL 和模式构件,首先要分析的是生成的 XSD。此内容使用 xsd:import 标记导入到 WSDL 文件中(请参见清单 4);schemaLocation 指定 XSD 的位置。

清单 4. 包含订单处理模式定义的 WSDL 文件

<types>    <xsd:schema>     <xsd:import namespace="http://jawxs.ibm.tutorial/jaxws/orderprocess"     schemaLocation="OrderProcess_schema1.xsd"/>    </xsd:schema> </types>

在浏览器中打开 schemaLocation (http://localhost:8080/OrderProcessWeb/orderprocess?xsd=1),以查看模式定义在浏览器中呈现的情况。让我们分析一下其中的情况:模式定义最开始是 targetNamspace 和 tns 声明,映射到在 OrderProcessService 的 @WebService Annotation 中定义的 targetNamespace http://jawxs.ibm.tutorial/jaxws/orderprocess。清单 5 给出了对应的代码。

清单 5. 模式(Schema)命名空间声明

<xs:schema version="1.0"    targetNamespace="http://jawxs.ibm.tutorial/jaxws/orderprocess"    xmlns:tns="http://jawxs.ibm.tutorial/jaxws/orderprocess"    xmlns:xs="http://www.w3.org/2001/XMLSchema">

前面指定的 wsgen 工具命令生成两个包装 Bean 类,ProcessOrder 和 ProcessOrderResponse,分别包含订单处理 Web 服务的输入和输出消息。将基于这些包装 Bean 类生成以下模式元素:

processOrder 属于 processOrder 类型,表示其中包含一个元素,且此元素的名称为 arg0,类型为 orderBean。可以看到,在 ProcessOrder 类和 processOrder 复杂类型之间存在一对一映射。

processOrderResponse 与 processOrderResponse 类型类似,后者的定义映射到 ProcessOrderResponse 类。

让我们仔细分析一下清单 6 中的代码。

清单 6. processOrder 的模式声明

<xs:element name="processOrder" type="tns:processOrder"/>   <xs:element name="processOrderResponse" type="tns:processOrderResponse"/>   <xs:complexType name="processOrder">    <xs:sequence>     <xs:element name="arg0" type="tns:orderBean" minOccurs="0"/>    </xs:sequence>   </xs:complexType>

清单 7 中所示的 orderBean 类型定义映射到 OrderBean 类。orderBean 类型定义包括:

一个 customer 元素,其类型为 customer。

一个 orderId,其类型为 string。

orderItems(它为数组类型,因为其将 maxOccurs 属性指定为 unbounded),其类型为 orderItem。

shippingAddress,其类型为 address。

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

时间:2011-01-26 IBM Naveen Balani

清单 7. processOrder 的模式声明

<xs:complexType name="orderBean&qu

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