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元素必须包含两个子元素:Code和Reason元素,另外三个可选的: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的GET和POST方法
- 大小: 3.2 KB
- 大小: 2.5 KB
分享到:
相关推荐
本学习笔记将深入探讨JDK 6中的关键知识点,包括语法改进、API增强、性能优化以及其他重要特性。 一、语法改进 1. 集合初始化简化:JDK 6允许在创建集合时直接通过花括号初始化,如`List<String> list = new ...
gSOAP学习笔记 gSOAP是一款跨平台的软件开发工具包,提供了C和C++服务器和客户端Web服务应用程序,并简化了XML在任何类型应用中的使用。gSOAP工具包支持SOAP 1.1/1.2编码和文档/文字样式,WSDL 1.1,MTOM/MIME/DIME...
本学习笔记旨在提供对Apache CXF的基本理解、功能特性和实际操作指导。 **1. CXF 简介** 1.1 CXF概述 Apache CXF是一个全面的服务开发框架,它允许开发者创建和部署各种类型的Web服务,包括基于SOAP、RESTful、WS-...
**Axis学习笔记(网页转贴)** Axis是一个开源的Java库,主要用于创建和使用Web服务。它是Apache软件基金会的一部分,广泛应用于开发基于SOAP(简单对象访问协议)的Web服务。本学习笔记将深入探讨Axis在Web服务开发...
**Axis开发Web Service学习笔记** 在信息技术领域,Web服务是一种基于开放标准的互联网通信协议,允许不同的应用程序之间进行互操作。而Axis是Apache软件基金会的一个开源项目,它提供了一个强大的工具集,用于创建...
AXIS学习笔记主要介绍了如何使用AXIS框架进行SOAP Web服务的开发和部署,适用于互联网环境。AXIS是一个开源的Java库,它允许开发者创建、部署和使用基于SOAP的Web服务。以下是AXIS学习的关键知识点: 1. **SOAP Web...
**Windows Communication Foundation (WCF) 学习笔记** Windows Communication Foundation(WCF)是微软推出的一种面向服务的架构,用于构建分布式应用程序。它提供了一种统一的方式,将应用程序的不同部分通过网络...
- **协议标准**:CXF 支持多种Web服务协议,如SOAP 1.1/1.2、WS-I Basic Profile、WS-Security、WS-Addressing等,以及RESTful服务。 - **传输方式**:除了HTTP和HTTPS外,CXF还支持JMS(Java Message Service)和...
XML(eXtensible Markup Language...通过《XML高级编程》的学习,读者可以深入了解XML的各个方面,并掌握如何在实际项目中应用这些技术,无论是构建Web服务、数据交换,还是处理复杂的XML文档,都将变得更加得心应手。
**J2EE学习笔记概述** J2EE(Java 2 Platform, Enterprise Edition)是Java平台的一个版本,专为开发和部署企业级应用而设计。它提供了丰富的组件模型、服务和工具,以支持分布式多层应用的构建。顾志凌的学习笔记...
### Apache CXF 学习笔记知识点汇总 #### 一、CXF简介 ##### 1.1 CXF概述 - **背景介绍**:Apache CXF 是一个高性能、功能丰富的开源框架,用于构建和消费 Web 服务。它融合了 Celtix 和 XFire 两个开源项目的...
Apache CXF是一个强大的开源Web服务框架,源自Celtix和XFire两个项目的合并,现在作为Apache软件基金会的顶级项目存在。...无论是新手还是经验丰富的开发者,都可以通过CXF的学习和实践,提升Web服务开发的效率和质量。
- Struts2支持多种远程调用协议,如RESTful服务、SOAP Web Services等,使得Struts2可以轻松地与其他系统进行交互,增强了其在网络应用中的灵活性。 ##### 1.6 面向组件的架构 - Struts2采用了面向组件的设计思想,...
### Flex学习笔记:ActionScript与Flex开发入门 #### 1. ActionScript核心概念 ##### 1.1 类和对象(Class and Object) 类是对象的模板,定义了一组具有相同特性和行为的对象的共同属性和方法。在ActionScript中...
它支持 SOAP 1.1 和 SOAP 1.2 协议,并且能够处理 WS-I Basic Profile。 3. **WS Policy** (cxf-rt-ws-policy-2.3.3.jar):此组件处理 Web 服务策略(WS-Policy),它允许服务提供商声明其服务的能力和约束,以及...
**JAXB(Java Architecture for XML Binding)学习笔记** JAXB是Java平台标准版(Java SE)的一部分,它提供了一种方便的方式来将XML数据绑定到Java对象上,以及将Java对象转换为XML数据。这个强大的工具使得开发...