RSS订阅
RSS订阅TT SOA

JAX-WS 2.0规范(三)

2008-10-10  选择字号:  | |
打印本文章

导读:描述了从每一个WSDL 1.1结构到等价的Java结构的默认映射。在WSDL 1.1里,抽象的port type定义与协议的绑定之间还没有完全分开。

关键词:WSDL Java WSDL 1.1 绑定

正在加载数据...

  这一章描述了WSDL 1.1到Java的映射。这个映射用于为客户端产生Web service接口以及从WSDL 1.1描述产生endpoint。

  下面的部分描述了从每一个WSDL 1.1结构到等价的Java结构的默认映射。在WSDL 1.1里, 抽象的port type定义与协议的绑定之间还没有完全分开。绑定影响WSDL元素(用在抽象port type定义里)与Java方法参数之间的映射。

  一个应用可以定制映射,使用嵌入式的绑定声明或者外部的绑定文件。

  为了能让注释在运行时用于分发和集结,此规范要求产生的Java类和接口必须使用Web service的注释。这些注释必须如实地反应WSDL文档中的信息,如给出映射过程的输入、嵌入到文档里的以及通过外部绑定文件的定制。

  2.1 定义

  一个WSDL文档有一个根元素wsdl:definitions。一个wsdl:definitions元素和它相关的targetNamespace属性被映射到一个Java包。JAXB定义了一个从命名空间URI到Java包名的标准映射。默认地,这个算法用来将wsdl:definitions元素的targetNamespace属性映射到一个Java包名。比如

  <wsdl:definitions name="HelloWorld"   targetNamespace="http://server.ws.demo/"   xmlns:ns1="http://schemas.xmlsoap.org/soap/http"   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"   xmlns:tns="http://server.ws.demo/"   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"   xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  此服务类对应的包名为:demo.ws.server, 项目结构如下:

  应用可以使用jaxws:package绑定声明来定制这个映射。

  2.1.1 扩展

  WSDL 1.1允许扩展元素和属性来增加到它的结构里。JAX-WS指定了SOAP和MIME绑定里定义的扩展元素和属性的Java映射。JAX-WS没有为其它任何扩展元素或属性指定映射,也没有提供一个标准的扩展框架,尽管这个支持可以通过一个标准的方法来增加。JAX-WS的后续版本可能会为标准扩展增加其它的支持,当可以获得这些标准扩展的时候。

  注意,这样的支持可能限制了互用性以及应用的方便性。

  2.2 PortType(端口类型)

  WSDL port type是一个抽象操作定义的集合。一个wsdl:portType元素被映射到一个包中的Java接口,这里的包来自wsdl:definitions元素(详见2.1)。一个从wsdl:portType映射的Java接口被叫做一个Service Endpoint Interface(服务端点接口)或SEI。比如:下面是一段WSDL描述,

  <wsdl:portType name="HelloWorld">

  <wsdl:operation name="sayHi">

                     <wsdl:input message="tns:sayHi" name="sayHi" />

                     <wsdl:output message="tns:sayHiResponse"

name="sayHiResponse" />

          </wsdl:operation>

  </wsdl:portType>

  对应接口中的方法为:

  接口实现中的方法是:

  应用可以定制这个映射,通过使用jaxws:class绑定声明。

  一个SEI包含了从wsdl:portType的子元素wsdl:operation中映射的Java方法。详细参见后面的wsdl:operation映射。WSDL 1.1不支持port type继承,所以每一个产生的SEI将包含相应port type里的所有操作方法。

  2.3 操作

  每一个wsdl:portType里的wsdl:operation被映射到相应Java service endpoint接口中的一个Java方法。

  应用通过使用jaxws:method可以定制这个映射。

  WS-I Basic Profile R2304要求,wsdl:portType里的操作的name属性拥有唯一的值,因此WS-I 的映射将不会使用重载(overload)方法产生Java接口。然而,为了向后兼容,JAX-WS支持操作重载,即假设重载在映射的Java SEI(service endpoint interface)声明中不会产生冲突。

  notification和solicit-response操作的映射超出了本节的范围,不再陈述。

原文出处:http://gocom.primeton.com/blog12999_35328.htm
作者:liang_ma    
相关的专家答疑
相关的白皮书
自2001年以来,Web服务描述语言(WSDL)一直在世面流通,它的第一个版本是从W3C那里传过来的,并且一直处于开发阶段。2002年2月出台了1.2版本,这个版本一直延续到了……
在前面文章中,我对Web服务相关标准已经做了许多报道,现在是时侯看看那些标准发行机构最近有哪些重大举措了。首先,我们看看W3C……
在面向客户的Web服务的例子中,我们说过,客户在应用中提交一个要求,要求需要获取批准,而批准的获取需要和外部的Web服务发生交互作用以便获取信用检查或者其它……
这是一个不错的问题。其他人标识了很多类型的服务。我将仅回答有关“最佳候选服务”和“第一步”的问题。同时,我对这些问题也进行了一点改动……
文章的第一部分讨论了SOA系统的分散性,以及在有众多小组参与的情况下,在这一过程中确保质量所遇到的困难。因此我们为连接工作流提供了许多策略,并且支持重用……
虚拟化和SOA之间是一种间接的、相辅相成的关系。也许在IT及业务转型中,两者的结合使用会发挥最大的优势。虚拟化有助于更快地显示部署基础设施的投资回报率(ROI)。
云计算的概念越来越流行,Amazon、Google和IBM是第一批将云计算引入公众视线的公司。云计算就是新的Web2.0,一种既有技术上的市场绽放。
安全对于许多的IT部门来说都是一个重要的问题之一,但是SOA安全问题完全是在另一个新的纬度上了。对于SOA为一个机构所带来的许多的好处,例如具有在许多不同的提供者和供应商的情况下混合和匹配服务。
最新更新
专家答疑
技巧
Ron Schmelzer,Jason Bloomberg
你认为通过遵循IT组织步骤可以演变为SOA吗?ZapThink公司明确SOA实行肯定是一个挑战——也不应被视为这一倡议应得到执行的一个步骤就是整个企业的基础……
Dana Gardner
您能解释什么是“私有云”吗,能否举例说明?这是供应商需要建立的基础吗?作为托管服务供应商和服务供应商寻求最有效和最强大的基础设施,作为他们的“云”支持能力……
Andrew Pollack
我们正在寻找一种从主机选择SOAP服务器的请求。我们希望制造一个远程程序呼叫(RPC)从CICS程序的SOAP服务器,其中进程请求,使错误或成功后的反应……