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>

インターネットで石鹸を検索すると。「plaatsorderrequest」ではなく「plaatsorder」が正しい方法のようです。ただし、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 に答える