簡體   English   中英

WSDL中的SOAP地址上的JMS:這是什么意思?

[英]JMS on SOAP address location in a WSDL: What does it mean?

我正在查看wsdl,它包含一個soap:address location標記,其值為jms:/queue?destination=...

  • WSDL上soap:address值的用途是什么?
  • 它會影響客戶端如何連接到Web服務的方式嗎?

另外,我嘗試在Google上搜索jms:/queue?destination=... ,結果上出現了“ SOAP over JMS”一詞。

  • 什么是“ JMS”和什么是“基於JMS的SOAP”?

我在客戶端上工作,因此擔心是否需要采取任何措施。 目前,我只知道如何通過HttpUrlConnection連接到REST和SOAP Web服務。

下面是WSDL文件的示例:(如下所示,使用的傳輸協議是HTTP,但是服務也將它與JMS地址一起使用?在這里我有點困惑。這是HTTP還是SOAP上的SOAP?通過JMS?)

<wsdl:binding name="MethodSOAP_JMS_Binding" type="tns:MethodPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" />
    <wsdl:operation name="methodName">
        <soap:operation soapAction="" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" />
        <wsdl:input name="method_Input">
            <soap:body parts="RequestBean" use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" />
        </wsdl:input>
        <wsdl:output name="method_Output">
            <soap:body parts="ResponseBean" use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" />
        </wsdl:output>
    </wsdl:operation>
</wsdl:binding>

<wsdl:service name="MethodSOAP_JMS_Service">
    <wsdl:port binding="tns:MethodSOAP_JMS_Binding" name="MethodSOAPPort">
        <soap:address location="jms:/queue?..." xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" />
    </wsdl:port>
</wsdl:service>

提前致謝!

JMS,Java消息服務,是在系統之間發送可靠消息的Java標准。 消息永遠不會直接在系統之間(例如HTTP)之間發送,而是由符合JMS的服務器軟件存儲和轉發。 JMS消息是一些標頭和各種類型的有效負載,但是對於SOAP,由於SOAP是基於XML的,因此很可能是字符串有效負載。

JMS URL不像HTTP URL那樣“獨立”。

像這個:

jms:///queue?connectionfactory=MyQCF&destination=MyQ

它說您應該連接一個名為MyQCF的連接工廠,並連接到一個名為MyQ的目的地。 確切地講,這意味着必須在其他位置進行配置,而沒有提及特定的物理服務器等。這在JMS中很常見,因為與JMS服務器建立連接的最常見方法是通過配置文件或稱為JNDI的寄存器。 在該配置中,供應商特定的設置和配置解析到要聯系的服務器,服務器的供應商/版本,目標(主題或隊列)等。

真正獲得開放的Java庫並沒有那么簡單。 所有JMS供應商都是唯一的實現。 (例如IBM WebSphere MQ,Apache ActiveMQ,Tibco EMS,OpenMQ,HornetQ)。 有一些開源和一些商業。 您需要確定基礎結構中使用了哪個特定的JMS供應商,並根據該供應商的文檔設置JMS配置。 一些供應商允許在JMS URL中進行完整的設置,例如ActiveMQ。 它仍然需要在Java中加載的特定庫。

JMS上的SOAP僅使用SOAP的所有通用標准,例如WSDL,WS-Security等。但是JMS增強了可靠性和事務性,同時還具有松散的耦合性,從而為系統和配置復雜性的交易提供了魯棒性。

如果您沒有特定的JMS供應商和庫,則可能需要查看CXF和ActiveMQ來啟動並通過JMS使用SOAP。 指南可以在這里找到。

基本上,JMS是用於消息傳遞的中間件服務,請參閱: http : //en.wikipedia.org/wiki/Java_Message_Service

“ soap:address”定義了服務的位置。

“基於JMS的SOAP”意味着您將通過JMS隊列將SOAP請求發送到服務,請參見圖1: http : //www.ibm.com/developerworks/websphere/library/techarticles/0402_du/0402_du.html

在客戶端,您必須連接到相應的JMS隊列。 如果透明處理(或完全支持),則取決於您的庫。

另一個教程: http : //www.ibm.com/developerworks/websphere/library/tutorials/0903_adams/index.html

SO有幾個相關的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM