加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用SOAP的XML消息传递

发布时间:2020-12-16 05:54:18 所属栏目:百科 来源:网络整理
导读:使用SOAP的XML消息传递的简易流程图: 详细步骤如下: (1)服务请求者的应用程序创建一条 SOAP 消息,将此信息和服务提供者的网址一起提供给 SOAP 基础结构(例如一个 SOAP 客户机运行时)。 SOAP 客户机运行时与一个底层网络协议(例如 HTTP) 交互,然后

使用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 消息转换为目标编程语言中的对象。然后,响应消息被提供给应用程序
public interface Hello
{
    public String sayHelloTo(String name);
}
假设有上述接口定义的服务存在
  • 客户端在远程调用 sayHelloTo 方法时,提供一个名字,期望返回一个字符串
  • 假设 Java RMI、CORBA、DCOM 都不存在,开发者必须负责将方法调用串行化,并把消息发给远程服务器
  • 一个简单的方式是使用 XML
<span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0"?>
<Hello>
   <sayHelloTo>
	<name>John</name>
   </sayHelloTo>
</Hello>
</span>
XML 打包请求
  • 将接口名作为根结点
  • 方法和参数作为结点
将请求发送给服务器
  • 不创建自己的TCP/IP 消息,利用 HTTP
  • 将请求封装成 HTTP POST 请求格式发出
<span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0"?>
<Hello>
   <sayHelloToResponse>
	<message>Hello John,How are you?</message>
   </sayHelloToResponse>
</Hello>
</span>
服务器接收到请求,解码 XML, 处理请求,然后以 XML 格式向客户发送响应
  • 与请求比较,方法的结点名字变为请求的方法名后缀 Response
  • 客户程序知道自己调用了哪个方法,根据方法名后缀 Response 寻找调用方法的返回值





注:尊重作者的劳动成果,如需转载文章或非个人学习使用,请注明文章出处,谢谢!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读