转自:https://blog.csdn.net/u014066037/article/details/51724658

使用SOAP的XML消息传递的简易流程图:

详细步骤如下:

(1)服务请求者的应用程序创建一条SOAP消息,将此信息和服务提供者的网址一起提供给SOAP基础结构(例如一个SOAP客户机运行时)。SOAP客户机运行时与一个底层网络协议(例如HTTP)交互,然后在网络上将SOAP消息发送出去。

(2)网络基础结构将消息传送到服务提供者的SOAP运行时(例如一个SOAP服务器)。SOAP服务器将请求消息路由到服务提供者的Web服务。如果应用程序需要,SOAP运行时负责将XML消息转换为特定于编程语言的对象。这个转换由消息中可以找到的编码模式所控制。

(3) Web 服务负责处理请求信息并生成一个响应。该响应也是一条SOAP消息。响应的SOAP消息被提供给SOAP运行时,其目的地是服务请求者。在HTTP上的同步请求/响应的情况中,联网协议的底层请求/响应本质用于实现消息传递的请求/响应。SOAP运行时将SOAP消息响应发送到网络上的服务请求者。
(4)响应消息由服务请求者节点上的联网基础结构接收。消息会经过整个SOAP基础结构;可能会将XML消息转换为目标编程语言中的对象。然后,响应消息被提供给应用程序

  1. public interface Hello
  2. {
  3. public String sayHelloTo(String name);
  4. }
假设有上述接口定义的服务存在
  • 客户端在远程调用sayHelloTo方法时,提供一个名字,期望返回一个字符串
  • 假设Java RMI、CORBA、DCOM都不存在,开发者必须负责将方法调用串行化,并把消息发给远程服务器
  • 一个简单的方式是使用XML
  1. <span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0"?>
  2. <Hello>
  3. <sayHelloTo>
  4. <name>John</name>
  5. </sayHelloTo>
  6. </Hello>
  7. </span>
用XML打包请求

  • 将接口名作为根结点
  • 方法和参数作为结点
将请求发送给服务器
  • 不创建自己的TCP/IP消息,利用HTTP
  • 将请求封装成HTTP POST请求格式发出
  1. <span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0"?>
  2. <Hello>
  3. <sayHelloToResponse>
  4. <message>Hello John, How are you?</message>
  5. </sayHelloToResponse>
  6. </Hello>
  7. </span>
服务器接收到请求,解码XML,处理请求,然后以XML格式向客户发送响应
  • 与请求比较,方法的结点名字变为请求的方法名后缀Response
  • 客户程序知道自己调用了哪个方法,根据方法名后缀Response寻找调用方法的返回值

最新文章

  1. signalr-源码
  2. winform窗体弹出时,光标默认显示在指定的输入框内
  3. xcode 消除警告
  4. 在centos环境安装mysql
  5. javase基础复习攻略《九》
  6. 18 BufferedReader使用方法
  7. OpenFileDialog获取文件名和文件路径问题
  8. IOS开发-UITextField代理常用的方法总结
  9. AllocConsole
  10. C++11:强类型枚举(enum)
  11. 关于python的装饰器(初解)
  12. 关于NETCORE中使用特性Serializable找不到引用的解决方法
  13. 【kindle笔记】之 《解忧杂货店》-2018-3-13
  14. PHP 正则表达式资料
  15. 随机漂浮图片、右侧上下浮动快捷栏JS
  16. CSS布局实战
  17. Android手机资料拷贝导出工具 --- 91手机助手
  18. 关于51单片机使用printf串口调试
  19. 实现EventHandler的监测
  20. rdlc报表随笔心得 ,基本结构和一些表达式。

热门文章

  1. bootstrap结合google code prettify的问题
  2. 《Java设计模式》之装饰模式
  3. JSP编程技术5-购物车的实现-session会话对象
  4. java 处理word文档 (含图片,表格内容)
  5. BZOJ3875: [Ahoi2014&amp;Jsoi2014]骑士游戏
  6. Linux下Rootkit的另类检测
  7. OPENCV(1)
  8. C#读写config配置文件--读取配置文件类
  9. Server.UrlEncode与HttpUtility.UrlEncode的区别
  10. Linux桌面词典 GoldenDict词典