有关WSDL绑定的详细信息

时间:2014-01-02 20:17:18

标签: java web-services wsdl

我正在学习WSDL from online documentation,在那里提到:

  

绑定必须指定一个协议。

     

绑定绝不能指定地址信息。

给出的示例示例是:

<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="GetLastTradePrice">
           <soap:operation soapAction="http://example.com/GetLastTradePrice"/>
           <input>
               <soap:body use="literal"/>
           </input>
           <output>
               <soap:body use="literal"/>
           </output>
        </operation>
    </binding>

protocol的含义是什么?在这个例子中如何映射?另外address WSDL一定不能指定什么?

1 个答案:

答案 0 :(得分:3)

所以SOAP是您通过网络发送的xml消息。您可以通过多种方式在网络上发送此SOAP消息。这种机制称为传输协议。

传统上你会使用HTTP作为传输协议,但是没有什么可以阻止你通过JMS(Java消息队列),SMTP(简单邮件传输协议)甚至普通套接字发送SOAP消息。

基本上,当您在WSDL中定义协议时,它表示我将使用WSDL中定义的协议发送此消息。在您的示例中,WSDL明确声明它将使用HTTP协议,此部分此处包含以下信息:transport="http://schemas.xmlsoap.org/soap/http"

SOAP上的Wikipedia Entry有一个传输部分,其中包含更多详细信息。

绑定处理XML如何通过网络传输以及它将使用哪种样式。发送SOAP消息的方式有多种,例如document,literal和RPC。这与如何不在哪里有关。 WSDL中的服务和端口元素处理我可以在哪里找到服务等。这就是为什么你不在绑定部分但在端口和服务部分中指定Web服务地址。

阅读不同的风格也会很好。请参阅this article以深入了解RPC,Literal和Document术语。