我正在尝试让Flex与Spring-WS Web服务进行通信。但Flex会生成一个SOAP请求,该请求既不由PayloadValidatingInterceptor也不由soapUI验证。这个问题似乎与使用XML命名空间有关。
未经验证的消息如下所示:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >
<soapenv:Header/>
<soapenv:Body>
<getAccountDataRequest xmlns="http://test.com/services/Account">
<accountNumber>537048.001</accountNumber>
</getAccountDataRequest>
</soapenv:Body>
</soapenv:Envelope>
以下两个变体都经过验证:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >
<soapenv:Header/>
<soapenv:Body>
<ac:getAccountDataRequest xmlns:ac="http://test.com/services/Account">
<accountNumber>537048.001</accountNumber>
</ac:getAccountDataRequest>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ac="http://test.com/services/Account">
<soapenv:Header/>
<soapenv:Body>
<ac:getAccountDataRequest>
<accountNumber>537048.001</accountNumber>
</ac:getAccountDataRequest>
</soapenv:Body>
</soapenv:Envelope>
根据我对我所阅读的文档的理解,第一个版本也应该是有效的。
Spring和soapUI在他们接受的内容中是否过于挑剔?或者Flex是否生成无效的XML?
感谢您的帮助!
答案 0 :(得分:0)
我最终将elementFormDefault="qualified"
添加到定义我的webservice的XSD中,现在每个人都同意Flex生成的消息是正确的。