0
我想弄清楚WS SOAP服務器在接收SOAP時如何知道要執行什麼操作。那麼,有人可以澄清以下內容嗎?WSDL操作和SOAP:這實際上是如何工作的?
有跡象表明有這樣的事情在網絡上的實例數:
<wsdl:operation name="function1">
<wsdl:input message="function1Request"/>
<wsdl:output message="function1Response"/>
<wsdl:fault message="someFault"/>
</wsdl:operation>
<wsdl:operation name="function2">
<wsdl:input message="function2Request"/>
<wsdl:output message="function2Response"/>
<wsdl:fault message="someFault"/>
</wsdl:operation>
然後SOAP請求調用期函數如下:
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:function1Request xmlns:m="http://namespaces.com">
...
</m:function1Request>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
因此,操作本身是沒有在SOAP中發送。它只包含請求的有效載荷。然後,我認爲,服務器必須將請求類型與WSDL中的操作定義進行匹配,以便找出實際需要調用的操作。
好的,這個工作在操作和輸入參數類型之間有1對1關係的情況下。
但是,如果我有2個操作具有相同的輸入類型呢?類似這樣的:
<wsdl:operation name="function1">
<wsdl:input message="function1Request"/>
<wsdl:output message="function1Response"/>
<wsdl:fault message="someFault"/>
</wsdl:operation>
<wsdl:operation name="function2">
<wsdl:input message="function1Request"/>
<wsdl:output message="function2Response"/>
<wsdl:fault message="someFault"/>
</wsdl:operation>
服務器如何知道要執行哪個操作?