- 浏览: 932956 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (251)
- WebService (17)
- IBatis (22)
- Hibernate (1)
- SpringMVC - 基础篇 (32)
- Spring (15)
- Java (11)
- JVM及调优 - 基础篇 (4)
- 集群 (14)
- 数据库 (17)
- WebSphere (5)
- 多线程 (4)
- 集合、容器 (2)
- DB Pool (1)
- Power Designer (5)
- Maven基础 (5)
- JS (14)
- WEB 前端 (5)
- 实用小工具 (17)
- 社会、人 (2)
- 乱七八糟 (18)
- ASM&CGLIB - 基础篇 (12)
- 缓存 (1)
- 性能 (1)
- 设计之殇 (1)
- 分布式事务 (1)
- 单点登录 (11)
- 分布式 Session (4)
- Memcached - 基础篇 (6)
最新评论
-
一笑_奈何:
楼主写的还真行不错。
扫盲贴 - J2EE集群之JNDI集群实现 -
xuezhongyu01:
博主写的很详细,但最后还是没明白,最后调用BasicDataS ...
Spring中的destroy-method方法 -
Mr梁:
commons-fileupload.jar commons- ...
SpringMVC 中文件上传 MultipartResolver -
Eywa:
总结的很不错
ORACLE CASE WHEN 及 SELECT CASE WHEN的用法 -
TryRelax:
fastjson 比 jackson 好用吧?
Spring MVC Jackson DateFormat
原文http://www.ibm.com/developerworks/cn/webservices/ws-wsdl/index.html
本文初步介绍了Web Service 'stack'中对于Web服务即时装配,自动集成起着关键作用的WSDL规范,首先介绍了WSDL的作用和意义,其次对WSDL文档的结构作出概要地介绍,对每个元素的作用作了探讨,分析了其开放和复用的体系设计的思想,最后通过一个实例详细说明了WSDL的工作模式。
本文所引用的资源主要包括两类,一类是Web服务的技术资源网站,包含了大量Web服务的技术信息,另一类是Web服务“stack"系列技术规范,他们是一个整体的技术体系,包括UDDI、SOAP、WSDL、XML等。本文的最后给出了这些资源的链接,有兴趣的读者可以通过这些资源链接找到所需的内容。
Web Service "Stack"
在我的先前的文章中,我已经介绍过Web服务的整个技术体系Web Service "stack",如下图:
Figure 1. Web Service "stack"
其中,绿色部分是先前已经定义好的并且广泛使用的传输层和网络层的标准:IP、HTTP、SMTP等。而蓝色部分是目前开发的Web服务的相关标准协议,包括服务调用协议SOAP、服务描述协议WSDL和服务发现/集成协议UDDI,以及服务工作流描述语言WSFL。而橙色部分描述的是更高层的待开发的关于路由、可靠性以及事务等方面的协议。黄色部分是各个协议层的公用机制,这些机制一般由外部的正交机制来完成。
其中,一个可以使用的Web服务应当按照需要选用若干层次的功能,而无需所有的特性。但是无论如何为了实现一个一般意义上的Web服务,具备Web服务的基础特性:跨平台调用和接口可机器识别,那么必需使用WSDL和SOAP。SOAP是用来最终完成Web服务调用的,而WSDL则是用于描述如何使用 SOAP来调用Web服务的。
WSDL 是一种XML Application,他将Web服务描述定义为一组服务访问点,客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服务进行访问(类似远程过程调用)。WSDL首先对访问的操作和访问时使用的请求/响应消息进行抽象描述,然后将其绑定到具体的传输协议和消息格式上以最终定义具体部署的服务访问点。相关的具体部署的服务访问点通过组合就成为抽象的Web服务。
在具体使用中,我们可以对 WSDL 进行扩展(类似SOAP的可扩展性),这样无论通信时使用何种消息格式或网络协议,都可以对服务访问点及其使用的消息格式进行描述。在WSDL的框架中,可以使用任意的消息格式和网络协议,如同SOAP中可以使用任意的网络协议一样。在WSDL规范中,定义了如何使用SOAP消息格式、HTTP GET/POST消息格式以及MIME格式来完成Web服务交互的规范。
WSDL概述
由于通信协议和消息格式在 Web 技术圈子里已经达到了标准化,我们知道在通常的开发过程中,对于对象的Interface一定具备相应的SDK描述文档,Web服务也是一种对象,只不过它是被部署在Web上而已。很自然的,我们也完全需要有对Web服务这个对象的界面的SDK描述文档。然而这两者又不尽相同,一来目前在Web上的应用已经完全接受了XML这个基本的标准,基本上所有新出台的技术都是基于XML标准的,二来Web服务的目标是即时装配,松散耦合以及自动集成的,这意味着 SDK描述文档应当是具备被机器识别的能力的。
也就是说,对于使用标准化的消息格式/通信协议的Web服务,它需要以某种结构化的方式(即XML)对Web服务的调用/通信加以描述,而且实现这一点也显得非常重要,这是Web服务即时装配的基本保证。WSDL正是这样一种描述语言,WSDL 定义了一套基于 XML的语法,将Web服务描述为能够进行消息交换的服务访问点的集合,从而满足了这种需求。WSDL 服务定义为分布式系统提供了可机器识别的SDK文档,并且可用于描述自动执行应用程序通信中所涉及的细节。
WSDL 文档将Web服务定义为服务访问点或端口的集合。在 WSDL 中,由于服务访问点和消息的抽象定义已从具体的服务部署或数据格式绑定中分离出来,因此可以对抽象定义进行再次使用:消息,指对交换数据的抽象描述;而端口类型,指操作的抽象集合。用于特定端口类型的具体协议和数据格式规范构成了可以再次使用的绑定。将Web访问地址与可再次使用的绑定相关联,可以定义一个端口,而端口的集合则定义为服务。因此,WSDL 文档在Web服务的定义中使用下列元素:
Definitions
WSDL的根节点,主要包括:name属性,WebService服务名,可通过@WebService注解的serviceName更改;targetNamespace属性,命名空间,可通过@WebService注解的targetNamespace更改。
Types
定义web service 使用的数据类型,他是独立与机器和语言的类型定义,这些类型被message标签所引用。
Message
web service 使用的消息,他定义了WebService函数的参数。在WSDL中,输入输出参数要分开定义,使用不同的message标签体标识。message定义的输入输出参数被portType标签所引用。
Operation
对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对。
PortType
对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。web service 执行的操作。引用message标签定义的内容来描述函数信息(函数名,输入输出参数等)。
Binding
特定端口类型的具体协议和数据格式规范的绑定。Web service 使用的通信协议。将portType中定义的服务绑定到SOAP协议,这部分XML 指定最终发布的 WebService的SOAP 消息封装格式、发布地址等。
Service
相关服务访问点的集合。这个元素的name 属性指定服务名称(这里与根元素的name 属性相同),子元素port的name 属性指定port名称,子元素address的location 属性指定Web 服务的地址。
Port
定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。
- <?xml version="1.0"?>
- <definitions name="StockQuote"
- targetNamespace="http://example.com/stockquote.wsdl"
- xmlns:tns="http://example.com/stockquote.wsdl"
- xmlns:xsd1="http://example.com/stockquote.xsd"
- xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
- xmlns="http://schemas.xmlsoap.org/wsdl/">
- <types>
- <schema targetNamespace="http://example.com/stockquote.xsd"
- xmlns="http://www.w3.org/1999/XMLSchema">
- <element name="TradePriceRequest">
- <complexType>
- <all>
- <element name="tickerSymbol" type="string"/>
- </all>
- </complexType>
- </element>
- <element name="TradePriceResult">
- <complexType>
- <all>
- <element name="price" type="float"/>
- </all>
- </complexType>
- </element>
- </schema>
- </types>
- <?xml version="1.0"?>
- <definitions name="StockQuote"
- targetNamespace="http://example.com/stockquote.wsdl"
- xmlns:tns="http://example.com/stockquote.wsdl"
- xmlns:xsd1="http://example.com/stockquote.xsd"
- xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
- xmlns="http://schemas.xmlsoap.org/wsdl/">
- <types>
- <schema targetNamespace="http://example.com/stockquote.xsd"
- xmlns="http://www.w3.org/1999/XMLSchema">
- <element name="TradePriceRequest">
- <complexType>
- <all>
- <element name="tickerSymbol" type="string"/>
- </all>
- </complexType>
- </element>
- <element name="TradePriceResult">
- <complexType>
- <all>
- <element name="price" type="float"/>
- </all>
- </complexType>
- </element>
- </schema>
- </types>
上面这部分是数据类型的定义,其中为定义了两个元素的结构:
* TradePriceRequest(交易价格请求): 将该元素定义为包含一个字符串元素(tickerSymbol)的复合类型元素。
* TradePriceResult(交易价格): 将该元素定义为一个包含一个浮点数元素(price)的复合类型元素。
Java代码
- <message name="GetLastTradePriceInput">
- <part name="body" element="xsd1:TradePriceRequest"/>
- </message>
- <message name="GetLastTradePriceOutput">
- <part name="body" element="xsd1:TradePriceResult"/>
- </message>
- <message name="GetLastTradePriceInput">
- <part name="body" element="xsd1:TradePriceRequest"/>
- </message>
- <message name="GetLastTradePriceOutput">
- <part name="body" element="xsd1:TradePriceResult"/>
- </message>
这部分是消息格式的抽象定义,其中定义了两个消息格式:
* GetlastTradePriceInput(获取最后交易价格的请求消息格式): 由一个消息片断组成,该消息片断的名字是body,包含的具体元素类型是TradePriceRequest。(前面已经定义过了)
* GetLastTradePriceOutput(获取最后交易价格的响应消息格式) : 由一个消息片断组成,该消息片断的名字是body,包含的具体元素类型是TradePriceResult。(前面已经定义过了)
Java代码
- <portType name="StockQuotePortType">
- <operation name="GetLastTradePrice">
- <input message="tns:GetLastTradePriceInput"/>
- <output message="tns:GetLastTradePriceOutput"/>
- </operation>
- </portType>
- <portType name="StockQuotePortType">
- <operation name="GetLastTradePrice">
- <input message="tns:GetLastTradePriceInput"/>
- <output message="tns:GetLastTradePriceOutput"/>
- </operation>
- </portType>
这部分定义了服务访问点的调用模式的类型,表明StockQuoteService的某个入口类型是请求/响应模式,请求消息是GetlastTradePriceInput,而响应消息是GetLastTradePriceOutput。
Java代码
- <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
- <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
- <operation name="GetLastTradePrice">
- <soap:operation soapAction="http://example.com/GetLastTradePrice"/>
- <input>
- <soap:body use="literal" namespace="http://example.com/stockquote.xsd"
- encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
- </input>
- <output>
- <soap:body use="literal" namespace="http://example.com/stockquote.xsd"
- encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
- </output>
- </soap:operation>
- </operation>
- </soap:binding>
- </binding>
- <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
- <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
- <operation name="GetLastTradePrice">
- <soap:operation soapAction="http://example.com/GetLastTradePrice"/>
- <input>
- <soap:body use="literal" namespace="http://example.com/stockquote.xsd"
- encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
- </input>
- <output>
- <soap:body use="literal" namespace="http://example.com/stockquote.xsd"
- encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
- </output>
- </soap:operation>
- </operation>
- </soap:binding>
- </binding>
这部分将服务访问点的抽象定义与SOAP HTTP绑定,描述如何通过SOAP/HTTP来访问按照前面描述的访问入口点类型部署的访问入口。其中规定了在具体SOAP调用时,应当使用的 soapAction是"http://example.com/GetLastTradePrice",而请求/响应消息的编码风格都应当采用SOAP 规范默认定义的编码风格" http://schemas.xmlsoap.org/soap/encoding/"。
Java代码
- <service name="StockQuoteService">
- <documentation>股票查询服务</documentation>
- <port name="StockQuotePort" binding="tns:StockQuoteBinding">
- <soap:address location="http://example.com/stockquote"/>
- </port>
- </service>
- </definitions>
- <service name="StockQuoteService">
- <documentation>股票查询服务</documentation>
- <port name="StockQuotePort" binding="tns:StockQuoteBinding">
- <soap:address location="http://example.com/stockquote"/>
- </port>
- </service>
- </definitions>
这部分是具体的Web服务的定义,在这个名为StockQuoteService的Web服务中,提供了一个服务访问入口,访问地址是"http://example.com/stockquote",使用的消息模式是由前面的binding所定义的。
按照这个WSDL文档的描述,在具体Web服务的使用中,具体发生的SOAP交互可能如下面所示:
SOAP消息请求:
Java代码
- POST /StockQuote HTTP/1.1
- Host: example.com
- Content-Type: text/xml; charset="utf-8"
- Content-Length: nnnn
- SOAPAction: "http://example.com/GetLastTradePrice"
- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
- <SOAP-ENV:Body>
- <m:TradePriceRequest xmlns:m="http://example.com/stockquote.xsd">
- <tickerSymbol>MSFT</tickerSymbol >
- </m:TradePriceRequest>
- </SOAP-ENV:Body>
- </SOAP-ENV:Envelope>
- POST /StockQuote HTTP/1.1
- Host: example.com
- Content-Type: text/xml; charset="utf-8"
- Content-Length: nnnn
- SOAPAction: "http://example.com/GetLastTradePrice"
- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
- <SOAP-ENV:Body>
- <m:TradePriceRequest xmlns:m="http://example.com/stockquote.xsd">
- <tickerSymbol>MSFT</tickerSymbol >
- </m:TradePriceRequest>
- </SOAP-ENV:Body>
- </SOAP-ENV:Envelope>
SOAP消息响应:
Java代码
- HTTP/1.1 200 OK
- Content-Type: text/xml; charset="utf-8"
- Content-Length: nnnn
- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
- <SOAP-ENV:Body>
- <m:TradePriceResult xmlns:m=" http://example.com/stockquote.xsd ">
- <price>74.5</price>
- </m:TradePriceResult >
- </SOAP-ENV:Body>
- </SOAP-ENV:Envelope>
- HTTP/1.1 200 OK
- Content-Type: text/xml; charset="utf-8"
- Content-Length: nnnn
- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
- <SOAP-ENV:Body>
- <m:TradePriceResult xmlns:m=" http://example.com/stockquote.xsd ">
- <price>74.5</price>
- </m:TradePriceResult >
- </SOAP-ENV:Body>
- </SOAP-ENV:Envelope>
大家可以参考下图,来理解一下WSDL文档的结构组织:
Figure 2. WSDL元素的对象结构示意图
其中,Types是一个数据类型定义的容器,包含了所有在消息定义中需要的XML元素的类型定义,我将在今后的文章中结合XML Schema来详细说明如何进行类型定义。
Message具体定义了在通信中使用的消息的数据结构,Message元素包含了一组Part元素,每个Part元素都是最终消息的一个组成部分,每个 Part都会引用一个DataType来表示它的结构。Part元素不支持嵌套(可以使用DataType来完成这方面的需要),都是并列出现。
PortType具体定义了一种服务访问入口的类型,何谓访问入口的类型呢?就是传入/传出消息的模式及其格式。一个PortType可以包含若干个 Operation,而一个Operation则是指访问入口支持的一种类型的调用。在WSDL里面支持四种访问入口调用的模式:
1. 单请求;
2. 单响应;
3. 请求/响应;
4. 响应/请求。
在这里请求指的是从客户端到Web服务端,而响应指的是从Web服务端到客户端。PortType的定义中会引用消息定义部分的一个到两个消息,作为请求或响应消息的格式。比如,一个股票查询的访问入口可能就会支持两种请求消息,一种请求消息中指明股票代码,而另一种请求消息中则会指明股票的名称,响应消息可能都是股票的价格等等。
以上三种结构描述了调用Web服务的抽象定义,这三部分与具体Web服务部署细节无关,是可复用的描述(每个层次都可以复用)。如果与一般的对象语言做比较的话,这部分可以堪称是IDL描述的对象,描述了对象的接口标准,但是到底对象是用哪种语言实现,遵从哪种平台的细节规范,被部署在哪台机器上则是后面的元素所描述的。
Service描述的是一个具体的被部署的Web服务所提供的所有访问入口的部署细节,一个Service往往会包含多个服务访问入口,而每个访问入口都会使用一个Port元素来描述。
Port描述的是一个服务访问入口的部署细节,包括通过哪个Web地址(URL)来访问,应当使用怎样的消息调用模式来访问等。其中消息调用模式则是使用Binding结构来表示。
Binding结构定义了某个PortType与某一种具体的网络传输协议或消息传输协议相绑定,从这一层次开始,描述的内容就与具体服务的部署相关了。比如可以将PortType与SOAP/HTTP绑定,也可以将PortType与MIME/SMTP相绑定等。
在介绍了WSDL的主要元素之后,大家会发现,WSDL的设计理念完全继承了以XML为基础的当代Web技术标准的一贯设计理念:开放。WSDL允许通过扩展使用其他的类型定义语言(不光是XML Schema),允许使用多种网络传输协议和消息格式(不光是在规范中定义的这些:SOAP/HTTP,HTTP-GET/POST以及MIME等)。同时WSDL也应用了当代软件工程中的复用理念,分离了抽象定义层和具体部署层,使得抽象定义层的复用性大大增加。比如我们可以先使用抽象定义层为一类 Web服务进行抽象定义(比如UDDI Registry,抽象定义肯定是完全一致的遵循了UDDI规范),而不同的运营公司可以采用不同的具体部署层的描述结合抽象定义完成其自身的Web服务的描述。
WSDL文档示例
下例是一个提供股票报价的简单Web服务的 WSDL 定义。该服务支持名为 GetLastTradePrice 的单一操作,这个操作是通过在 HTTP 上运行 SOAP 1.1 协议来实现的。该请求接受一个类型为字符串的 tickerSymbol,并返回类型为浮点数的价格。
Java代码
发表评论
-
WebService CXF --- 传输文件MTOM
2011-12-25 14:06 13184一、几个相关的概念 ... -
WebService CXF JAXB角色及简单使用
2011-12-24 22:23 3655WebService传递XML文档,当然也可以传递JSON对象 ... -
WebService CXF SOAP基本结构
2011-12-24 18:20 2088SOAP 是基于 XML 的简易协议,可使应用程序在 HTTP ... -
Sping3+CXF Web应用
2011-12-24 00:21 1494一、准备环境 Apache Cxf 2.4.5 ... -
WebService CXF下的Service(URL, QName, WebServiceFeature[]) is undefined
2011-09-21 21:11 2705Service(URL, QName, WebServiceF ... -
WebService CXF 如何设置 timeout
2011-05-21 09:31 4383由于用CXF构建的webservice使用的是spring配置 ... -
让Apache CXF 支持传递java.sql.Timestamp和java.util.HashMap类型
2011-05-02 12:46 2484让Apache CXF 支持传递java.sql.Timest ... -
WebService CXF 中的拦截器(Interceptor)
2011-05-02 12:38 3594CXF的Interceptor在每个请求响应之前或响应之后,做 ... -
WebService CXF中传递复杂类型对象
2011-05-02 12:07 12979前面一篇文章介绍的都是传递简单的字符串,现在开始介绍传递复杂类 ... -
WebService CXF --- 由WSDL文件开发Client端
2011-04-30 17:49 3870WSDL文件:http://www.webxml.com.cn ... -
WebService CXF----JAX-RPC 与 JAX-WS
2011-04-30 10:00 4393Web服务: 1、SOAP 2、WSDL ... -
WebService CXF --- 创建基础的示例
2011-04-09 16:11 15781、开发环境: cxf-2.3.3 ... -
WebService CXF --- CXF简单介绍
2011-04-09 14:48 41791、WebService介绍 WebService让 ... -
Web Service中的XFire 传输List、Map 自定义对象
2011-04-05 09:14 7839简单记录XFire中怎么传输对象的实现,以备查阅;又不正确的地 ... -
一个基础的XFire WebService快速开发
2011-04-03 09:03 1567环境: XFire-1.2.6 JDK1.5 MyEcl ... -
axis和xfire以及CXF
2011-04-03 08:51 1554由于最近使用WebService,于是到网上疯狂搜索,找点资料 ...
相关推荐
使用cxf wsdl2java生成webservice客户端命令
**WebService CXF 详解** **一、WebService简介** WebService是一种基于标准的,可以在不同操作系统、编程语言之间交换数据的Web应用程序。它通过WSDL(Web服务描述语言)定义了服务接口,利用SOAP(简单对象访问...
WebService_WSDL结构分析 WebService_WSDL结构分析是对WebService_WSDL文档的结构进行了详细的分析,阐述了WSDL文档的组成元素和每个元素的作用。WSDL(Web Services Description Language,Web服务描述语言)是一...
6. **CXF的WSDL第一方式**:CXF也支持WSDL第一方式,即先有WSDL描述服务,然后根据WSDL自动生成Java代码。这种方式适合于已有WSDL描述的服务,或者需要严格遵循WSDL规范的情况。 7. **CXF与Spring集成**:CXF与...
在本案例中,我们将关注如何通过注解来修改WebService生成的WSDL(Web Services Description Language)信息,以实现服务名称、命名空间、返回值以及调用方法的定制,同时增强服务的安全性。 首先,让我们理解WSDL...
3.WSDL描述 WebService CXF学习——进阶篇 1.SOAP讲解 2.JAX-WS讲解 3.对象传递 WebService CXF学习——高级篇(一)(二) 1.整合Spring框架 2.CXF+Spring+Hibernate 3.WS-Security WebService CXF学习...
- 设置项目名称和WSDL URL(例如`http://localhost:8080/cxf_bigdata/webservice/bigDataService?wsdl`)。 - 进行校验并通过后,完成客户端代码生成。 ##### 3. 测试客户端 - **编写测试类**:创建一个名为`Test...
1. 服务端开发:CXF允许开发者使用Java编程模型(如JAX-WS或JAX-RS)来定义服务接口,然后自动生成服务实现和WSDL(Web Services Description Language)。 2. 客户端调用:CXF也支持生成客户端代理代码,使得Java...
CXF(Code first eXtended Framework)是一个Java Web服务框架,它提供了从Java类创建Web服务以及从WSDL创建Java服务端点的能力。CXF支持WS-*标准,包括SOAP、WS-Security等,同时提供了与JAX-RS集成的RESTful服务...
WebService CXF是一个强大的开源框架,用于创建和消费Web服务。它允许开发者基于WSDL(Web Service Description Language)文件快速地生成服务端和客户端代码,极大地简化了Web服务的开发流程。在本篇中,我们将深入...
它通过SOAP(Simple Object Access Protocol)协议进行数据交换,使用WSDL(Web Services Description Language)来描述服务接口,而UDDI(Universal Description, Discovery, and Integration)则用于服务的发布和...
在本主题中,我们将深入探讨如何使用WSDL生成WebService接口以及编写Test调用方法进行测试。 1. WSDL基础 WSDL文件是一个XML文档,它描述了服务的位置(endpoint)、使用的消息格式(message)和服务提供的操作...
1. 生成客户端代理:CXF的WSDL2Java工具可以将服务端的WSDL(Web Service Description Language)文件转换为Java客户端代码,生成服务代理类。 2. 创建服务代理实例:通过代理类,客户端可以创建服务的实例,就像...
- **WSDL 生成**:CXF 可以根据 Java 接口自动生成 WSDL 文件,这是 Web 服务的合同,描述了服务提供的操作、输入和输出参数。 - **服务实现**:实现上述接口,提供具体的服务逻辑。 - **部署**:使用 CXF 提供的...
本文将详细介绍三种基于WSDL生成WebService服务端的方法:使用`wsdl2java`命令、通过SOAPUI工具及借助MyEclipse的Web Service项目功能。 #### 方法一:使用`wsdl2java`命令生成 `wsdl2java`是Apache CXF提供的一个...
【描述】虽然描述信息为空,但通常在"WebService CXF 开发实战"的主题中,会涉及以下内容:首先,开发者会学习如何设置开发环境,包括安装必要的工具,如JDK、Maven或Gradle以及CXF库。然后,会深入理解CXF的工作...
1. **cxf-2.7.6.jar**:这是Apache CXF的核心库,包含了处理Web服务请求和响应的主要组件,包括协议解析、WSDL(Web服务描述语言)处理、绑定和数据转换等。 2. **xmlbeans-2.6.0.jar**:XMLBeans是一个XML绑定工具...
在描述中提到的“权限控制”可能是指 CXF 提供的安全功能。CXF 支持多种安全机制,包括基本认证、WS-Security、OAuth 等。通过在服务端配置相应的安全策略,可以限制谁能够访问 Web 服务,确保数据安全。例如,可以...
本项目"WebService CXF动态Demo"旨在展示如何不关注服务端的具体实现,只需知道服务端的方法名、参数和WSDL(Web Service Definition Language)即可调用服务。这是一个非常实用的功能,因为客户端开发者无需深入...