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>
服务器如何知道要执行哪个操作?