web服务能否同时支持SOAP 1.1和1.2

web服务能否同时支持SOAP 1.1和1.2,soap,wsdl,Soap,Wsdl,查看下面来自wsdl的代码片段- <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsap="

查看下面来自wsdl的代码片段-

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"    
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" 
xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" 
xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" 
xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" 
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:tns="http://tempuri.org/" 
xmlns:wsa10="http://www.w3.org/2005/08/addressing" 
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" 
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" 
name="XXXService" targetNamespace="http://tempuri.org/">

我有这些问题-

  • 因为上面的定义包括两个方面-
    xmlns:soap=”http://schemas.xmlsoap.org/wsdl/soap/“
    xmlns:soap12=”http://schemas.xmlsoap.org/wsdl/soap12/“

    我可以安全地说,SOAP 1.1和1.2都受支持吗?或
    我是否需要查看服务代码或wsdl的任何其他部分来确认 这个

  • 另一个问题是,当我们谈论WSDL版本时,它总是和SOAP版本一样吗?
    那么WSDLVersion1.1将是SOAP1.1使用的版本


非常感谢您的时间。

对于第一个问题,您需要查看WSDL文件内部,并查看在哪里使用了
soap12
名称空间前缀。您应该找到类似于
等的内容

在WSDL中声明SOAP 1.2名称空间是不够的,您需要在该名称空间中声明XML元素,以便它在某些方面有用。如果您没有
soap12
名称空间前缀的绑定和地址,那么您的服务可能不支持它

对于第二个问题,WSDL版本与SOAP协议版本不匹配。您可以使用带有SOAP 1.1的WSDL 1.1和SOAP 1.2的绑定扩展,也可以使用带有SOAP 1.1和SOAP 1.2的WSDL 2.0


您应该将您的WSDL提供给,并查看它允许您以多少方式调用服务(在SOAP 1.1上或在SOAP 1.1和SOAP 1.2上)。

非常感谢您的回复。soap12只在中使用,所以我的第一个疑问被分类了。对于第二个,我安装了SoapUI(5.5),如何调用特定SOAP版本的服务?是否有任何设置?如果绑定中未使用soap12前缀,则表示只能使用SOAP1.1调用服务。当您使用WSDL在SoapUI中创建项目时,SoapUI将为所有绑定创建操作。如果服务只公开SOAP1.1,那么您有一组操作。如果它还公开了SOAP1.2,那么SoapUI将创建两组操作。您不需要设置,因为SoapUI会创建所有设置。但是,如果您只有一个SOAP 1.1绑定,那么您只能获得该集。再次感谢,但是我如何澄清WSDL版本?您有一个WSDL 1.1,因为根元素是
。对于WSDL2.0,根元素称为
。查看此图像以了解差异:您能否用WSDL版本图像回答另一个问题?这将帮助其他人寻找类似的答案-