【问题标题】:SOAP request payloadSOAP 请求有效负载
【发布时间】:2012-07-06 10:56:33
【问题描述】:

我有一个网络服务,其中请求有效负载如下

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:poc="http://www.poc.mbo.demo.com">
<soapenv:Header/>
<soapenv:Body>
  <poc:doTransaction>
     <!--Optional:-->
     <dealerid>1</dealerid>
     <!--Optional:-->
     <partid>1</partid>
     <!--Optional:-->
     <quantity>2</quantity>
     <!--Optional:-->
     <orderdate>12-DEC-2012</orderdate>
  </poc:doTransaction>
</soapenv:Body>
</soapenv:Envelope>

但如果我这样尝试,它没有回应。可能是什么问题

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:poc="http://www.poc.mbo.demo.com">
<soapenv:Header/>
<soapenv:Body>
   <poc:doTransaction>
     <!--Optional:-->
      <poc:dealerid>1</poc:dealerid>
      <!--Optional:-->
     <poc:partid>1</poc:partid>
     <!--Optional:-->
     <quantity>2</quantity>
     <!--Optional:-->
     <poc:orderdate>12-DEC-2012</poc:orderdate>
  </poc:doTransaction>
 </soapenv:Body>
</soapenv:Envelope>

【问题讨论】:

  • 你能发布错误吗?

标签: java web-services jakarta-ee jax-ws


【解决方案1】:

第一个示例中的 doTransaction 元素不在 http://www.poc.mbo.demo.com 命名空间中。

您的请求要么验证失败(假设验证已启用),要么服务器忽略无效元素并将请求视为等同于:

<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"  
    xmlns:poc="http://www.poc.mbo.demo.com">
<soapenv:Header/>
<soapenv:Body>
  <poc:doTransaction />
</soapenv:Body>
</soapenv:Envelope>

【讨论】:

    【解决方案2】:

    根据您的服务的 WSDL,该元素将与命名空间 (XSD) 相关联,但其他元素可能是另一个命名空间 (XSD) 的一部分,

    要清楚地了解,只需检查 WSDL 的类型部分和操作,检查哪个类型(元素)与哪个 XSD 相关联..你可以很容易地理解它失败了..

    将命名空间视为导入的类和类型,因为它是状态之一(:) 只是为了便于理解)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-22
      • 2014-09-23
      • 2018-04-23
      相关资源
      最近更新 更多