第三次编辑:我现在认为这个问题是由于SOAP版本不匹配(1.1请求,1.2响应)伪装成命名空间问题。混合版本是不合法的,还是只是样式不好?如果我不能改变我的SOAP版本或服务的话,我是否完全没有运气?
第二次编辑:澄清了错误信息,并试图减少“tl; dr”-ness。
编辑:[链接已删除,无关]
使用soapUI,我发送一个以:
开头的请求<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ...
并获得以:
开头的回复<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" ...
我知道服务正在获取信息,因为下线的流程正在运行。但是,我的soapUI测试步骤失败了。它有两个主动断言:“SOAP响应”和“非SOAP错误”。失败标记位于“SOAP响应”旁边,并带有以下消息:
第-1行:元素信封@ http://www.w3.org/2003/05/soap-envelope不是有效的信封@ http://schemas.xmlsoap.org/soap/envelope/文档或有效替代。
我尝试过混合和匹配名称空间前缀和架构URL。改变前缀似乎没有效果;更改网址会导致VersionMismatch
错误。我也尝试使用替换组,但这似乎不合法。
答案 0 :(得分:1)
好的,编辑过的问题似乎确实有答案:“这取决于。”
答案 1 :(得分:0)
两个名称空间都是完全有效的(您甚至可以导航到每个名称空间以查看模式定义)。听起来问题就在于您的Soap UI测试实用程序,并使用请求中的命名空间处理响应。
服务描述请求和响应有效负载,命名空间有助于定义该定义。虽然在两者之间混合/匹配这些定义似乎很糟糕,但它仍然有效。
即使模式在请求和响应之间混合,这些只是解释请求和响应值的帮助。