`
苹果超人
  • 浏览: 202417 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

CXF初识

    博客分类:
  • cfx
 
阅读更多
说到webservice不得不提到WSDL和SOAP两个概念。

首先我们来说说WSDL,它是干嘛用的呢?
WSDL 是一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作(或方法)。

WSDL文档结构
元素 定义
<portType> web service 执行的操作
<message> web service 使用的消息
<types> web service 使用的数据类型
<binding> web service 使用的通信协议
元素 定义
<portType> web service 执行的操作
<message>web service 使用的消息
<types> web service 使用的数据类型
<binding> web service 使用的通信协议


WSDL端口
<portType>元素描述了一个webservice、可被执行的操作,以及相关的消息。
可以把它比作传统编程语言中的一个函数库(或一个模块、或一个类)。

WSDL消息
<message>元素定义了一个操作的数据元素。
每个消息均由一个或者多个部件组成。可以把这些部件比作传统编程语言中一个函数调用的参数。
WSDL types
<types>元素定义了webservice使用的数据类型。
为了最大程度的平台中立性,WSDL使用XML Schema语法来定义数据类型。

WSDL Bindings
<binding>元素为每个端口定义消息格式和协议细节。

eg.WSDL实例
<message name="getTermRequest">
   <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
   <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
        <input message="getTermRequest"/>
        <output message="getTermResponse"/>
  </operation>
</portType>

说明:该例子中,<portType>元素把"glossaryTerms"定义为某个端口的名称,把"
getTerm"定义为某个操作的名称。

操作"getTerm"拥有一个名为"getTermRequest"的输入消息,以及一个名为"getTermResponse"的输出消息

<message>元素定义每个消息的部件,以及相关联的数据类型。

这里,glossaryTerms就是一个类(函数库),而"getTerm"是带有输入参数"getTermRequest"和返回参数"getTermResponse"的一个函数。

SOAP又是什么呢?


  • SOAP 指简易对象访问协议
  • SOAP 是一种通信协议
  • SOAP 用于应用程序之间的通信
  • SOAP 是一种用于发送消息的格式
  • SOAP 被设计用来通过因特网进行通信
  • SOAP 独立于平台
  • SOAP 独立于语言
  • SOAP 基于 XML
  • SOAP 很简单并可扩展
  • SOAP 允许您绕过防火墙
  • SOAP 将被作为 W3C 标准来发展

简单的说,SOAP是简易对象之间相互访问的通讯协议。

SOAP消息的基本结构
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Header>
  ...
  ...
</soap:Header>

<soap:Body>
  ...
  ...
  <soap:Fault>
    ...
    ...
  </soap:Fault>
</soap:Body>

</soap:Envelope>


SOAP Envelope元素
必须的有的。Envelope元素是SOAP消息的根元素。它可把XML文档定义为SOAP消息。

SOAP Header元素
可选的,该元素可包含有关SOAP消息的应用程序专用信息(比如认证,支付等)。如果H饿啊der元素被提供,则它必须是Envelope元素的第一个子元素。

SOAP Body元素

必须的,该元素可包含打算传送到消息最终端点的实际SOAP消息。

SOAP Fault 元素
可选的 SOAP Fault 元素用于指示错误消息。
如果已提供了 Fault 元素,则它必须是 Body 元素的子元素。在一条 SOAP 消息中,Fault 元素只能出现一次。

那么WSDL如何和SOAP进行绑定呢?

eg.绑定到SOAP

<message name="getTermRequest">
   <part name="term" type="xs:string" />
</message>

<message name="getTermResponse">
   <part name="value" type="xs:string" />
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
      <input message="getTermRequest" />
      <output message="getTermResponse" />
  </operation>
</portType>

<binding type="glossaryTerms" name="b1">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
  <operation>
    <soap:operation
     soapAction="http://example.com/getTerm" />
    <input>
      <soap:body use="literal" />
    </input>
    <output>
      <soap:body use="literal" />
    </output>
  </operation>
</binding>


binding
元素有两个属性"name"和"type"属性。

name属性定义了binding的名称,而type属性指向用于binding的端口(即portType端口)。

soap:binding元素有两个属性"style"和"transport"。

style
属性可取值"rpc"或者"document"。transport属性定义了要使用的SOAP协议。

operation元素定义了每个端口提供的操作符。
分享到:
评论

相关推荐

    XFire初识-使用Eclipse开发WebService

    **XFire初识:使用Eclipse开发WebService** 在IT行业中,WebService是一种允许应用程序之间进行交互的标准化技术。它通过XML(可扩展标记语言)来交换数据,使得不同平台上的应用能够无缝对接。XFire是Java平台上一...

    webservice 第一个小项目

    【WebService详解:初识与实现】 在IT行业中,Web服务是一种允许不同系统之间进行通信和交换数据的标准方式。尤其在分布式应用系统中,WebService扮演着关键角色。本项目以"webservice 第一个小项目"为主题,将带你...

    Java思维导图xmind文件+导出图片

    初识分布式架构与意义 如何把应用从单机扩展到分布式 大型分布式架构演进过程 分布式架构设计 主流架构模型-SOA架构和微服务架构 领域驱动设计及业务驱动规划 分布式架构的基本理论CAP、BASE以及其应用 什么...

    Android典型技术模块开发详解

    第1章 Android初识 1.1 Android简介 1.1.1 认识Android 1.1.2 Android系统框架 1.1.3 应用程序框架 1.2 Eclipse开发环境 1.2.1 安装ADT插件 1.2.2 安装SDK 1.2.3 配置源代码 1.2.4 创建AVD 1.3 Android模拟器 1.3.1 ...

    大数据培训课程安排.pdf

    第五阶段: 初识⼤数据 1. 难易程度:三颗星 2. 课时量(技术知识点+阶段项⽬任务+综合能⼒):80课时 3. 主要技术包括:⼤数据前篇(什么是⼤数据,应⽤场景,如何学习⼤数据库,虚拟机概念和安装等)、Linux常见...

Global site tag (gtag.js) - Google Analytics