SOAPAction是什么?

SOAPAction是什么?SOAPAction是什么?最近在工作中遇到一个SOAPAction的问题,正好拿出来研究一把。  据说SOAPActionheader这玩意在SOAP1.1规范中着实让不少开发者喝了一壶。真的有这么难理解么?我想这应该是因为SOAP有两种非常不同的使用方式,而SOAPAction主要是被用来支持其中应用较少的一种方式的原因。在我看来,这种方式也非常有价值。  让我们先看看S

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

SOAPAction是什么?

最近在工作中遇到一个SOAP Action的问题,正好拿出来研究一把。
  据说SOAPAction header这玩意在SOAP 1.1规范中着实让不少开发者喝了一壶。真的有这么难理解么?我想这应该是因为SOAP有两种非常不同的使用方式,而SOAPAction主要是被用来支持其中应用较少的一种方式的原因。在我看来,这种方式也非常有价值。

  让我们先看看SOAP 1.1规范是怎么定义HTTP SOAPAction header的:

  SOAPAction HTTP request header被用来标识SOAP HTTP请求的目的地,其值是个URI地址。SOAP发送并不限制格式、URI特征或其必须可解析,那么在这种情况下,发送一个HTTP SOAP请求时,其HTTP客户端必须使用/指明SOAPAction HTTP request header。

  SOAPAction header的内容可以被用在服务端,诸如:防火墙适当的过滤基于HTTP的SOAP请求消息等场景。SOAPAction header的值为空串(“”)表示SOAP消息的目的地由HTTP请求的URI标识;无值则表示没有指定这条消息的目的地。

  看了官方的定义,相信大家也迷糊了,迷糊在“目的地”这个词上吧?那么,给它一个准确的说法吧——“确定执行某一行为的路径”。

  看一个SOAP消息的例子:

<SOAP-ENV:Envelope
  xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”
  SOAP-ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”>
   <SOAP-ENV:Body>
       <m:GetLastTradePrice xmlns:m=”Some-URI”>
           <symbol>XYS</symbol>
       </m:GetLastTradePrice>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
  很明显的,这条消息指明了要去执行服务端的“GetLastTradePrice”这个方法,开发者不会对此没有疑问,这样看来,SOAP Action也许显得多余了?

  然而,在另一种SOAP消息的发送场景中,却少不了SOAP Action。在这种场景中,SOAP消息并没有显示的指定要调用的服务方法名,而是利用底层的传输协议发送(这样的话,一般会被Web services忽视),例如使用HTTP的Post方式发送的SOAP消息。

  拿AWT组件容器来举个例子吧,我们知道有很多AWT容器,例如:Panel,Box,Window等等,很多情况下,开发者知道他们创建的泛型容器对象下真正是什么对象。那么,假设下面两段代码里的java.awt.Container对象其实是一个Box吧:

  1.

  comp = new TextField( “test” );
  java.awt.Container c = Foo.bar();
  c.add( comp );

  2.

  comp = new TextField( “test” );
  java.awt.Container c = Foo.bar();
  ((java.awt.Panel)c).add( comp );

  以上两段代码产生两种不同的结果。“add()”方法对两者似乎有着相同的意义,但是在代码2中其被扩展为“作为一个Panel对象去add”。所以很明显的,代码2会抛出一个异常,因为我们知道这个对象实际上是Box,而我们的代码期待的是Panel。

  HTTP POST的意义正如这个例子中的“add()”方法一样,HTTP POST提供一个关于SOAPAction如何被使用的索引;而SOAPAction header的值则应该被用来指明这个“扩展”的目的地——这条SOAP/HTTP消息发送者所期待的处理容器的名称(可以这样理解:即相应的API方法)。那么,正如上面那个AWT例子一样,如果这种期待没有被满足,就会产生一个错误。

  注意:在SOAP 1.2规范中,SOAPAction header这个属性被”action”所取代,但其作用和工作原理都没有变化。

  有意思的是,在Tibco的EAI工具BW中,使用SOAP服务端活动必须指定SOAP Action属性,如果引用的原始WSDL没有使用这个属性的话,也必须显示的指明;因此,相应的,其客户端也要注意啦——必须为SOAP Action属性填入期待的URI。

 

————另一篇

http://www.cnblogs.com/hcbin/archive/2011/10/13/2209649.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164075.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【全流程】从头在树莓派4B上部署自己训练的yolov5模型(配合NCS2加速)

    【全流程】从头在树莓派4B上部署自己训练的yolov5模型(配合NCS2加速)目录0.前言1.我的环境2.整个流程3.具体过程3.1训练自己的yolov5模型3.2将.pt模型转换为.onnx模型3.3在本地将.onnx转换成IR模型3.4在树莓派4B上使用IR模型推理4.一些坑4.1树莓派4B上安装pytorch4.2安装好了pytorch没法用4.3模型转换失败4.4转换好的模型推测出的结果和原模型相差较大5.总结0.前言最近这一个月基本没写过博客,因为一直在树莓派4B上部署yolov5的模型,已经数不清楚踩了多少坑了,来来回回折腾了一个月,终于完成了。于

    2022年5月28日
    99
  • linux 句柄数限制_linux文件句柄数

    linux 句柄数限制_linux文件句柄数一个部署到linux下的中间件项目,当收到一个Client登录的时候,需要为这个Client打开四个文件,当进行多用户的大压力测试的时候,程序就出问题了:toomanyopenedfiles。网上一查,发现有人也碰到过类似的socket/File:Can’topensomanyfiles问题。在此总结一下这个问题,希望对后来之人有点帮助。解决之法:1,ulimit…

    2022年10月18日
    7
  • c语言:位运算符「建议收藏」

    c语言:位运算符「建议收藏」简介位运算符用来对二进制位进行操作,Java中提供了如下表所示的位运算符:位运算符中,除~以外,其余均为二元运算符。操作数只能为整型和字符型数据。C语言中六种位运算符:&按位与|按位或^按位异或~取反>>右移<<左移运算方法按位与运算按位与运算符”&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现。位运算.

    2022年10月4日
    3
  • jquerycdn国内地址_jquery 官网

    jquerycdn国内地址_jquery 官网JqueryCDN如果您不希望下载并存放jQuery,那么也可以通过CDN(内容分发网络)引用它。StaticfileCDN、百度、又拍云、新浪、谷歌和微软的服务器都存有jQuery。如果你的站点用户是国内的,建议使用百度、又拍云、新浪等国内CDN地址,如果你站点用户是国外的可以使用谷歌和微软。如需从StaticfileCDN、又拍云、新浪、谷歌或微软引用jQuery,请使用以下代码之一:StaticfileCDN:<head><script.

    2025年8月20日
    4
  • 晶晶图js小女孩行走动画

    晶晶图js小女孩行走动画1<!DOCTYPEhtml>2<htmllang=”en”>3<head>4<metacharset=”UTF-8″>5<title>Document</title>6<styletype=”text/css”>7…

    2022年7月17日
    26
  • oracle 11g安装时未能满足某些最低安装要求

    oracle 11g安装时未能满足某些最低安装要求本文是转载文章,文章的来源:csdn博客博主:huazicomeon文章:oracle11g安装时未能满足某些最低安装要求博文地址:https://blog.csdn.net/huazicomeon/article/details/53337849失败描述:Oracle安装包在"先决条件检查"步骤报告"未能满足某些最低安装要求。请复查并修复下表中列出的问题,然后重新检查系统。"并在安装界面下方…

    2022年7月25日
    17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号