理论知识:

转自:http://wso2.com/library/articles/differentiating-between-soap-versions-looking-soap-message/

Using SOAP Namespace
Every XML message contains namespaces to properly qualify the entities within it. In SOAP 1.1 and SOAP 1.2 specifications, each had defined its own unique namespaces to define the entities belonging to those specifications.SOAP 1.1 : http://schemas.xmlsoap.org/soap/envelope/SOAP 1.2 : http://www.w3.org/2003/05/soap-envelopeThis is the easiest and sometimes the only method some people use. You can look at the SOAP namespace of a SOAP message and easily determine its version.<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Header>.........</soapenv:Header><soapenv:Body>....</soapenv:Body>
</soapenv:Envelope>
SOAP 1.1 messageYou might argue that this is the only method you need to know to differentiate two different SOAP versions. This might not be the case all the time. For example, there can be a situation where you will need to know the SOAP version even before reading the SOAP message itself. Even though the previous statement seems unusual, this is how it is when we have two different object models or two different builders for the two SOAP versions. In such situations, as a developer, you cannot afford to touch the SOAP message to find out the version. Perhaps you can cheat by temporarily recording the first few events or entities, but that might not be the best solution.In the next section, we will use transport binding rules, if available, to differentiate between the two different versions.

转自:http://wso2.com/library/559/

A: When Apache Axis2/Java receives a SOAP message, Axis2 tries to determine the SOAP version this message adheres to. This is required for the validation purposes against the correct SOAP specification. Axis2 has two basic mechanisms to identify the SOAP version.1. Checking the namespace of the SOAP envelope. If the namespace is "http://schemas.xmlsoap.org/soap/envelope/", then it is a SOAP 1.1 message, and if the namespace is "http://www.w3.org/2003/05/soap-envelope", then it is a SOAP 1.2 message.
2.If the transport medium is HTTP, Then we check for the existance of SOAPAction HTTP Header. If the message is SOAP 1.1, then there must be a SOAPAction HTTP header. If it is a SOAP 1.2 message, then there may be a SOAPAction parameter inside the Content-type header (this parameter is not mandatory according to SOAP 1.2 specification HTTP binding)
When both the above parameters are present, Axis2 compares the outputs from those evaluations. If they do not match, then Axis2 will throw an error saying "Transport level information does not match with SOAP Message namespace URI". So if you encounter this error, check your SOAP message and HTTP headers.Applies To:Apache Axis2/Java v1.0 and higher

进一步理论说明:

转自:http://www.herongyang.com/Web-Services/Perl-SOAP-1-2-Request-Differences-SOAP-1-1-and-1-2.html

This section describes differences between a SOAP 1.1 request and SOAP 1.2 request for GetSpeech Web service provided by xmlme.com.Remember that I goal is to use SOAP::Lite to send SOAP 1.2 request to the xmlme.com server.
Before writing the client program, let's compare the SOAP 1.1 request with the SOAP 1.2 request provided at: http://www.xmlme.com/WSShakespeare.asmx?op=GetSpeech.
SOAP 1.1 request: POST /WSShakespeare.asmx HTTP/1.1
Host: www.xmlme.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://xmlme.com/WebServices/GetSpeech"<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><GetSpeech xmlns="http://xmlme.com/WebServices"><Request>string</Request></GetSpeech></soap:Body>
</soap:Envelope>SOAP 1.2 request:POST /WSShakespeare.asmx HTTP/1.1
Host: www.xmlme.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"><soap12:Body><GetSpeech xmlns="http://xmlme.com/WebServices"><Request>string</Request></GetSpeech></soap12:Body>
</soap12:Envelope>
I see 3 differences:
SOAP 1.2 uses "application/soap+xml" as Content-Type and SOAP 1.1 uses "text/xml".
SOAP 1.2 does not use SOAPAction header line.
SOAP 1.2 uses "http://www.w3.org/2003/05/soap-envelope" as the envolope namespace and SOAP 1.1 uses "http://schemas.xmlsoap.org/soap/envelope/".
Now I known where to pay attention to generate a correct SOAP 1.2 request.
Last update: 2009.

关键点:HTTP头信息里的Content-Type一定要和soap信息中的版本标识一致。

3 differences:
SOAP 1.2 uses "application/soap+xml" as Content-Type and SOAP 1.1 uses "text/xml".
SOAP 1.2 does not use SOAPAction header line.
SOAP 1.2 uses "http://www.w3.org/2003/05/soap-envelope" as the envolope namespace and SOAP 1.1 uses "http://schemas.xmlsoap.org/soap/envelope/".

转载于:https://www.cnblogs.com/wangpei/p/3937541.html

Transport level information does not match with SOAP Message namespace URI错误的理解相关推荐

  1. CRS-6706: Oracle Clusterware Release patch level ('3329448500') does not match Software patch level

    oracle19.3.0.0 rac+centos7.6 补丁为19.5.0.0 启动crs报错如下: [root@rac2 ~]# /oracle/app/19c/grid/bin/crsctl s ...

  2. signer information does not match问题解决

    这两天调试程序,碰到了一个问题.程序在调用log4j打印日志的时候碰到了如下的错误: java.lang.ExceptionInInitializerError  at com.company.pub ...

  3. Oracle 19c rac PSU安装及问题 - CRS-6706: Oracle Clusterware Release patch level ('nnn') does not match

    -- 19c rac 19.3.0.0 安装PSU  19.7.0.0.200414 /stage 下的补丁文件夹的属性是grid:oinstall --GI用户下 $ORACLE_HOME/OPat ...

  4. java.lang.SecurityException: signer information does not match signer information

    场景:  有一个jar包,无源码,反编译查看到, jar包中的某个class流程存在问题, 于是继承相应的类, 然后将继承的class也放入jar包中,但是实际访问jar包对应的class中的方法时, ...

  5. xxxxxxxxxsigner information does not match signer information of other classes in the same package

    Maven 在static 方法下测试没问题,请求正常,但是服务启动后出现错误信息. 在发起请求时抛出异常信息"xxxxxxxxx"signer information does ...

  6. 【英语学习】【Level 08】U05 Better option L1 Message sent

    文章目录 Word Preparation Wi-Fi: 无线网 app: (手机)应用软件 rather than: 而不是:宁愿 snail mail: 普通邮件:蜗牛邮件 instant mes ...

  7. NSArray element failed to match the Swift Array Element type错误的解决方法

    在用swift调用yy_model生成的嵌套数组模型的时候回报错如下 错误的解决方法: Thread 1: Precondition failed: NSArray element failed to ...

  8. Erroe:ESS-07311 FaultCode=Couldn't create SOAP message due to exception: XML reader error;

    1.今天在修改问题的时候,同事问了我一个ESS定时调度的问题,这个ESS定时调度的原理是,ESB封装的PKG,然后在ESS中在配置的定时调取ESB接口,OSB和PKG都测试均没有问题,但是ESS上就会 ...

  9. 盛派微信 The ‘hr‘ start tag on line 6 position 2 does not match the end tag of ‘body’ 错误解决方案

    .NET Core微信支付退款 Senparc.Weixin.TenPay V3接口 The 'hr' start tag on line 6 position 2 does not match th ...

  10. 【无标题】Browse information of one or more files is not available错误及原因(不是网上那种点魔法棒解决)

    问题: 在移植lwip的时候将移植文件放到工程模板后,对工程进行编译或者或者按F12或Go To Definition Of"xxx"程序无法跳转,且报Browse informa ...

最新文章

  1. Python2、Python3相对路径、绝对路径导入
  2. 用CORS 解决vue.js django跨域调用
  3. 2020noi普及组优秀的拆分_吉首市乾元小学荣获北斗领航梦想全国青少年科技实践活动优秀组织奖...
  4. Usage of git
  5. Neo4j:Cypher –删除重复的节点
  6. 使用FFMPEG SDK解码流数据获得YUV数据及其大小
  7. 华为Mate 40 Pro首碎照来了,网友酸了:不要给我
  8. ⼩程序中⽀持es7的async语法
  9. 2021-10-08梦笔记
  10. mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication解决办法
  11. 漏洞情报 | VMware Tools、VMRC 及 VMware App Volumes 本地提权漏洞
  12. 卸载有卸载密码和安全策略的OFFICESCAN客户端(破解)
  13. 惠普服务器如何修改ip地址,HP网络打印机如何设置IP地址
  14. 校验码——海明码及码距,码距
  15. 华为路由器学习指南_BGP_路由反射器与联盟
  16. 启英泰伦cl1122模块学习笔记
  17. 热爱工作,拥抱明天——读《干法》有感2800字
  18. Win10多版本CUDA和CUDNN安装
  19. STM32串口打印输出乱码的解决办法
  20. 上海大专计算机专业排名,2019上海软科世界一流学科排名计算机科学与工程专业排名乔治华盛顿大学排名第301-400...

热门文章

  1. android 隐藏系统音量的接口_Android9.0 系统默认配置清单
  2. 为什么visual的联机浏览功能不能用_Minecraft非正版联机教程
  3. mysql免安装教程_MySQL免安装版环境配置图文教程
  4. qt 创建第二个ui_Qt自定义提示信息弹窗
  5. 计算机系统师 评标专家,昆明筑龙·昆明市计算机辅助评标系统.pptx
  6. 翻译: 全球导航卫星系统 (GNSS) 的演进
  7. 容器技术Docker K8s 39 Serverless Kubernetes(ASK)详解-阿里云Serverless容器(ASK)适用场景与核心功能
  8. 价值连城 知名深度强化学习Pieter Abbeel的采访 给机器学习 深度学习 和机器人学研究者从业者的建议
  9. 著名线性代数教授 85岁麻省理工学院教授,给2020本科生教授《线性代数入门》
  10. HTTP的短连接、长连接、管道连接流水线