cxf 服务端soap报文
在上一篇文章中,我逐步介绍了使用apache CXF开发简单的RESTFull服务的步骤。 在本文中,我将讨论使用CXF开发SOAP Web服务。 在继续前进之前,让我们先了解一下构成SOAP Web服务的概念/元素
SOAP或简单对象访问协议
SOAP是一种协议,用于使用诸如http,smtp等应用程序协议作为载体在网络上交换基于XML的消息。 SOAP消息包含一个SOAP信封。 信封可以分为标题和正文。 标头包含与上下文相关的定义(例如安全性),而主体包含实际的应用程序数据。 典型的SOAP消息看起来像
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header>
</soap:Header>
<soap:Body>
<m:GetStockPrice xmlns:m="http://www.example.org/stock">
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
WSDL或Web服务描述语言
WSDL是基于标准的XML语言,用于描述Web服务。 WSDL完整描述了Web服务公开的公共接口,期望的参数,返回的输出结构,Web服务的位置。 WSDL将Web服务定义为能够交换消息的通信端点的集合。 这些通信端点称为端口。 端口由两部分组成。
- 包含Web服务公开的公共接口。 该接口包含所有方法,调用它们所需的参数以及它们返回的响应结构。
- 第二部分将公共接口绑定到诸如http之类的网络协议。 绑定包括诸如公共接口的位置和服务的消息格式之类的信息。
SOAP通讯样式
存在两种类型的沟通方式
- 文件
- RPC
SOAP Web服务使用的通信样式在其WSDL中定义。
在文档样式中,作为肥皂主体一部分的应用程序数据作为XML文档发送。 可以通过也是WSDL一部分的xml模式完全验证该文档。 由于XML可以按照服务开发人员的意愿包含结构,因此,对XML有效负载进行编组和解组的责任在于提供者和使用者代码的末尾。
顾名思义,以RPC风格表示,使用者调用服务方法就像调用本地方法一样。 为此,RPC消息由使用者可以调用的公共接口方法列表组成。 这些方法按名称列为xml元素。 这些方法所需的方法参数构成方法元素的子元素。 封送/取消封送的责任在于Web服务框架。 该框架包含其自己的封送/解封库。 RPC样式导致应用程序代码和Web服务框架之间的代码紧密耦合,因此规范是创建文档样式服务。 掌握了关键概念之后,让我们看一下如何使用Apache CXF编写肥皂网络服务的示例。
获取本教程的源代码
我已经在SVN中提交了本教程的源文件。
- 您可以从以下网站下载该Web应用程序: http : //subversion.assembla.com/svn/weblog4j/Weblog4jDemo/trunk
- 您可以从以下 网址 下载客户端:</