2013-06-28 57 views
0

我遇到了由第三方提供的服務wsdl問題。讓我試着解釋一下。藉此WSDL部分:SoapUI使用消息中的消息名稱而不是操作名稱

<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到)生成以下要求:

<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都有錯。那麼任何人都可以向我解釋這個區別嗎?

+0

能否請您發佈任何有關架構整個WSDL? – davidfmatheson

回答

1

元素:

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

將有一個相關的消息條目,看起來像:

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

該元素的名稱是什麼決定了包裝的請求元素,假設這是一個文檔/文字包裝服務(他們通常是)。我需要完整的WSDL和模式才能更加明確。

+0

我糾正了第三方WSDL的本地副本,你回答是正確的,知道要尋找什麼,我發現http://www.ibm.com/developerworks/webservices/library/ws-usagewsdl/引用的規則此。我向第三方發出請求,糾正wdsl使其符合預期的請求格式 – zu1b

0

你可以自己在WSDL做出這種改變。只要更換標籤即可。它會工作。 順便說一下,您可以通過提供正確的wsdl來直接詢問您的客戶。他們很容易用所需的請求標籤生成wsdl。

相關問題