0

我对第三方提供的服务 wsdl 有疑问。让我试着解释一下。拿这个 wsdl 部分:

<wsdl:portType name="IBestelService">
      <wsdl:operation name="PlaatsOrder">
         <wsdl:input message="tns:PlaatsOrderRequest"/>
         <wsdl:output message="tns:PlaatsOrderResponse"/>
         <wsdl:fault message="tns:BestelServiceFault" name="BestelServiceFault"/>
      </wsdl:operation>
      <wsdl:operation name="PlaatsOrderThreeShips">
         <wsdl:input message="tns:PlaatsOrderRequestThreeShips"/>
         <wsdl:output message="tns:PlaatsOrderResponseThreeShips"/>
         <wsdl:fault message="tns:BestelServiceFault" name="BestelServiceFault"/>
      </wsdl:operation>
   </wsdl:portType>

对于soapui(和.net to)请求,生成以下请求:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sambo-ict:basetypes:1.0" xmlns:urn1="urn:sambo-ict:bestelservice:types:1.0">
   <soapenv:Header>
      <urn:AuthenticationHeader xmlns="urn:sambo-ict:basetypes:1.0"/>
   </soapenv:Header>
   <soapenv:Body>
      <urn1:PlaatsOrderRequest>
         <EAN>9789490998394</EAN>
         <DistributorOrderId>13188</DistributorOrderId>
         <DeliveryMethod>Tegoed</DeliveryMethod>
         <Amount>1</Amount>
      </urn1:PlaatsOrderRequest>
   </soapenv:Body>
</soapenv:Envelope>

然而,第三方网站的服务期望这一点

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sambo-ict:basetypes:1.0" xmlns:urn1="urn:sambo-ict:bestelservice:types:1.0">
   <soapenv:Header>
      <urn:AuthenticationHeader xmlns="urn:sambo-ict:basetypes:1.0"/>
   </soapenv:Header>
   <soapenv:Body>
      <urn1:PlaatsOrder>
         <EAN>9789490998394</EAN>
         <DistributorOrderId>13188</DistributorOrderId>
         <DeliveryMethod>Tegoed</DeliveryMethod>
         <Amount>1</Amount>
      </urn1:PlaatsOrder>
   </soapenv:Body>
</soapenv:Envelope>

当我在肥皂上搜索互联网时。“plaatsorder”而不是“plaatsorderrequest”似乎是正确的方法。但是我不相信soapui/java 和.net 都错了。那么任何人都可以向我解释其中的区别吗?

4

2 回答 2

1

元素:

<wsdl:input message="tns:PlaatsOrderRequest"/>

将有一个相关的消息条目,如下所示:

<wsdl:message name="PlaatsOrderRequest">
    <wsdl:part element="urn1:PlaatsOrderRequest" name="parameters" />
</wsdl:message>

该元素名称决定了包装的请求元素,假设这是一个文档/文字包装服务(它们通常是)。我需要完整的 WSDL 和模式才能更明确。

于 2013-06-28T13:13:34.160 回答
0

您可以在 wsdl 中自己进行此更改。只需更换所需的标签即可。它会起作用的。顺便说一句,您可以通过向正确的 wsdl 提供此更改来直接询问您的客户。他们很容易生成带有所需请求标签的 wsdl。

于 2013-07-01T12:13:31.000 回答