`
zhongkem
  • 浏览: 152576 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

SOAP1.2学习笔记

阅读更多


 SOAP
,简单对象访问协议,是一种基于XML的,用于在计算机之间交换信息的协议。

SOAP一般包含一个强制性Envelope元素,一个可选的Header元素,一个强制性的Body元素。 

 1.Envelope

这是SOAP的根元素,SOAP的版本一般要在这里声明。以下是1.2名称空间的地址

<SOAP-ENV:Envelope
     xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/

 

2.Header

这个框架主要是为身份验证,事务管理和支付授权提供一个开放的机制。

目前主要有以下几个属性:

role属性:定义了SOAP结点是否需要处理某个Header Block.

          none:表示该Header Block不能被任何SOAP结点处理

          next:应该被每一个结点处理。

          ultimateReceiver:只有最后一个接收者才能处理

MustUnderstand属性:规定SOAP结点是否必须处理某个Header Block.如果不能处理则要求返回一个错误信息。     

 relay属性:规定Header  Block是否应该被继续传递下一个SOAP结点。一般的SOAP结点在处理完一个Header Block后,应该将它从所在的SOAP消息中删除。

SOAP消息的处理过程如下:

  • SOAP结点招收到一条SOAP消息;
  • SOAP结点根据SOAP消息中Header元素的role属性值,确定它可以处理的Header  Block集合;
  • 在这些可以处理的Header Block集合中,SOAP结点进一步确定哪些是必须处理的,也就是mustUnderstand属性值为true的Header Block集合;
  • SOAP结点处理消息。如果该结点不能处理必须处理的消息,则返回一条错误信息,对于可选的Header Block,该结点可以处理也可以忽略;
  • 所有被处理和被忽略的Header Block将被删除,除非其relay属性值为真。该SOAP结点也可以根据需要,在该SOAP消息中插入一些新的Header Block;
  • 转发该SOAP消息给下一个SOAP结点

3.Body

主要用来存储消息的内容,取决于具体的消息。有一个预定义的Falt元素,在服务处理请求出错时,出错消息被包装在Falut元素中,返回给请求方。Fault元素必须包含两个子元素:CodeReason元素,另外三个可选的:Detail,Node,Role元素。Code元素又包括一个必须的Value元素和一个可选的Subcode元素。Value元素的值可以是下面预定义5个可能的错误代码之一:

VersionMismatch:版本不匹配

MustUnderstand:SOAP结点不能处理SOAP消息中某个必须处理的结点

DataEncodingUnknown:SOAP结点不能处理SOAP消息的数据编码

Sender:SOAP结点接收到的SOAP消息格式不正确

Receiver:SOAP结点不能处理该SOAP消息



 

SOAP协议支持两种编程风格,分别为文档风格和RPC方格。

使用文档风格时,SOAP消息中的Body元素包含需要被该服务处理的业务文档(推荐)

使用RPC风格时,Body元素则包含被调用方法的名字及其参数。

 SOAP1.2定义了两种与HTTP协议绑定的方式,分别为HTTP的GETPOST方法

 

 

 

  • 大小: 3.2 KB
  • 大小: 2.5 KB
分享到:
评论

相关推荐

    Java JDK 6学习笔记

    本学习笔记将深入探讨JDK 6中的关键知识点,包括语法改进、API增强、性能优化以及其他重要特性。 一、语法改进 1. 集合初始化简化:JDK 6允许在创建集合时直接通过花括号初始化,如`List&lt;String&gt; list = new ...

    gsoap学习笔记,自己整理

    gSOAP学习笔记 gSOAP是一款跨平台的软件开发工具包,提供了C和C++服务器和客户端Web服务应用程序,并简化了XML在任何类型应用中的使用。gSOAP工具包支持SOAP 1.1/1.2编码和文档/文字样式,WSDL 1.1,MTOM/MIME/DIME...

    Apache_cxf_学习笔记

    本学习笔记旨在提供对Apache CXF的基本理解、功能特性和实际操作指导。 **1. CXF 简介** 1.1 CXF概述 Apache CXF是一个全面的服务开发框架,它允许开发者创建和部署各种类型的Web服务,包括基于SOAP、RESTful、WS-...

    Axis学习笔记(网页转贴)

    **Axis学习笔记(网页转贴)** Axis是一个开源的Java库,主要用于创建和使用Web服务。它是Apache软件基金会的一部分,广泛应用于开发基于SOAP(简单对象访问协议)的Web服务。本学习笔记将深入探讨Axis在Web服务开发...

    Axis 开发Web Service(学习笔记)

    **Axis开发Web Service学习笔记** 在信息技术领域,Web服务是一种基于开放标准的互联网通信协议,允许不同的应用程序之间进行互操作。而Axis是Apache软件基金会的一个开源项目,它提供了一个强大的工具集,用于创建...

    AXIS学习笔记.doc

    AXIS学习笔记主要介绍了如何使用AXIS框架进行SOAP Web服务的开发和部署,适用于互联网环境。AXIS是一个开源的Java库,它允许开发者创建、部署和使用基于SOAP的Web服务。以下是AXIS学习的关键知识点: 1. **SOAP Web...

    WCF学习笔记

    **Windows Communication Foundation (WCF) 学习笔记** Windows Communication Foundation(WCF)是微软推出的一种面向服务的架构,用于构建分布式应用程序。它提供了一种统一的方式,将应用程序的不同部分通过网络...

    Apache cxf 学习笔记.pdf

    - **协议标准**:CXF 支持多种Web服务协议,如SOAP 1.1/1.2、WS-I Basic Profile、WS-Security、WS-Addressing等,以及RESTful服务。 - **传输方式**:除了HTTP和HTTPS外,CXF还支持JMS(Java Message Service)和...

    XML高级编程学习笔记

    XML(eXtensible Markup Language...通过《XML高级编程》的学习,读者可以深入了解XML的各个方面,并掌握如何在实际项目中应用这些技术,无论是构建Web服务、数据交换,还是处理复杂的XML文档,都将变得更加得心应手。

    j2ee学习笔记

    **J2EE学习笔记概述** J2EE(Java 2 Platform, Enterprise Edition)是Java平台的一个版本,专为开发和部署企业级应用而设计。它提供了丰富的组件模型、服务和工具,以支持分布式多层应用的构建。顾志凌的学习笔记...

    Apache_cxf_学习笔记.docx

    ### Apache CXF 学习笔记知识点汇总 #### 一、CXF简介 ##### 1.1 CXF概述 - **背景介绍**:Apache CXF 是一个高性能、功能丰富的开源框架,用于构建和消费 Web 服务。它融合了 Celtix 和 XFire 两个开源项目的...

    Apache-cxf-学习笔记.docx

    Apache CXF是一个强大的开源Web服务框架,源自Celtix和XFire两个项目的合并,现在作为Apache软件基金会的顶级项目存在。...无论是新手还是经验丰富的开发者,都可以通过CXF的学习和实践,提升Web服务开发的效率和质量。

    Struts2学习笔记与心得

    - Struts2支持多种远程调用协议,如RESTful服务、SOAP Web Services等,使得Struts2可以轻松地与其他系统进行交互,增强了其在网络应用中的灵活性。 ##### 1.6 面向组件的架构 - Struts2采用了面向组件的设计思想,...

    Flex学习笔记,入门材料

    ### Flex学习笔记:ActionScript与Flex开发入门 #### 1. ActionScript核心概念 ##### 1.1 类和对象(Class and Object) 类是对象的模板,定义了一组具有相同特性和行为的对象的共同属性和方法。在ActionScript中...

    CXF webservice初学笔记

    它支持 SOAP 1.1 和 SOAP 1.2 协议,并且能够处理 WS-I Basic Profile。 3. **WS Policy** (cxf-rt-ws-policy-2.3.3.jar):此组件处理 Web 服务策略(WS-Policy),它允许服务提供商声明其服务的能力和约束,以及...

    J2EE学习笔记

    ### J2EE学习笔记知识点概览 #### 第一章:JAVA的输入输出流 ##### 1.1 概述 Java 提供了丰富的输入/输出流处理方式,这些流可以被划分为字节流和字符流两大类。字节流主要用于处理二进制数据,而字符流则更适用...

    JAXB 学习笔记

    **JAXB(Java Architecture for XML Binding)学习笔记** JAXB是Java平台标准版(Java SE)的一部分,它提供了一种方便的方式来将XML数据绑定到Java对象上,以及将Java对象转换为XML数据。这个强大的工具使得开发...

Global site tag (gtag.js) - Google Analytics