从Flex WebService生成的XML无效

时间:2010-09-21 09:14:40

标签: flex web-services spring soap

我正在尝试让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?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我最终将elementFormDefault="qualified"添加到定义我的webservice的XSD中,现在每个人都同意Flex生成的消息是正确的。