天天看點

WSO2 ESB的一種消息傳遞方式

正如我之前在WSO2 ESB工作時所釋出的那樣。 為了更好地了解此ESB,我一直在浏覽示例 (尚未完成所有示例 )。 示例12是關于與ESB的單向消息傳遞,并使用TCP螢幕使其可見。 我之前已經介紹過如何設定類似的工具“ TcpTunnelGUI”,但實際上我更喜歡TCP Monitor。 要使用該工具,請參見此處或此處的手冊。 順便說一下,該工具随WSO2 ESB安裝一起提供,是以您不必下載下傳并安裝它。 隻需轉到“ $ CARBON_HOME / bin”目錄并輸入指令:

./tcpmon.sh

要檢視使用Tcp Monitor的示例12,請執行以下操作:

    • 啟動WSO2 ESB

本示例使用與示例1類似的ESB設定,是以通過在終端中導航到$ CARBON_HOME / bin目錄并輸入以下指令來啟動ESB:

./wso2esb-samples.sh -sn 1

    • 啟動Apache Axis伺服器

下一步是啟動在其中部署SimpleStockQuote的Axis伺服器。 為此,請打開一個新終端,然後導航到“ $ CARBON_HOME / samples / axis2Server”目錄。 輸入指令

./axis2server.sh

    • 啟動TcpMonitor

如果尚未完成,請啟動Tcp Monitor。 通過打開新終端并浏覽到'$ CARBON_HOME / bin'并輸入指令

./tcpmon.sh

執行

./tcpmon.sh

這應該啟動Tcp Monitor工具:

WSO2 ESB的一種消息傳遞方式
    • 配置TcpMonitor

我們将偵聽端口8281并将傳入的流量轉發到8280(這是我們的ESB運作代理服務的地方)。

這是在“ Tcp螢幕”中進行設定的方法:

WSO2 ESB的一種消息傳遞方式

單擊“添加”按鈕後,您會看到TcpMonitor等待連接配接:

WSO2 ESB的一種消息傳遞方式

是以,讓我們通過它發送一條消息。

    • 運作Axis用戶端

如示例頁面所示,我對該語句做了一些小的更改。 打開一個新終端,然後從目錄'$ CARBON_HOME / samples / axis2Client'中運作以下指令:

ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dprxurl=http://localhost:8281/ -Dmode=placeorder

    • 檢查結果

在TCP Monitor中,我們看到在TCP Monitor中添加了一行,而在下部,我們看到了傳​​入和傳出請求:

WSO2 ESB的一種消息傳遞方式

這是Axis用戶端發送的請求:

<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>
   <soapenv:Header xmlns:wsa='http://www.w3.org/2005/08/addressing'>
      <wsa:To>http://localhost:9000/services/SimpleStockQuoteService</wsa:To>
      <wsa:ReplyTo>
         <wsa:Address>http://www.w3.org/2005/08/addressing/none</wsa:Address>
      </wsa:ReplyTo>
      <wsa:MessageID>urn:uuid:44ba7c6b-1836-4a62-8e40-814813a64022</wsa:MessageID>
      <wsa:Action>urn:placeOrder</wsa:Action>
   </soapenv:Header>
   <soapenv:Body>
      <m0:placeOrder xmlns:m0='http://services.samples'>
         <m0:order>
            <m0:price>154.76332953114107</m0:price>
            <m0:quantity>8769</m0:quantity>
            <m0:symbol>IBM</m0:symbol>
         </m0:order>
      </m0:placeOrder>
   </soapenv:Body>
</soapenv:Envelope>
           

在請求中要注意的重要事項是标頭中的以下元素:

<wsa:ReplyTo>
         <wsa:Address>http://www.w3.org/2005/08/addressing/none</wsa:Address>
      </wsa:ReplyTo>
           

在标頭中使用此元素,我們告訴我們服務我們不希望響應。 是以,作為響應,我們得到的隻是202響應代碼,正如我們在TCP Monitor中看到的那樣:

HTTP/1.1 202 Accepted
Content-Type: text/xml; charset=UTF-8
Server: Synapse-HttpComponents-NIO
Date: Thu, 14 Mar 2013 20:30:19 GMT
Transfer-Encoding: chunked

0
           

這樣就完成了本示例,隻剩下幾個示例了!

參考:

The Pragmatic Integrator部落格上的JCG合作夥伴 Pascal Alma 與WSO2 ESB進行消息傳遞的一種方式 。

翻譯自: https://www.javacodegeeks.com/2013/03/one-way-messaging-with-wso2-esb.html