正如我之前在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工具:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcsQXYtJ3bm9CXldWYtlWPzNXZj9mcw1ycz9WL49TQU1UewQUYtFERNpHM6R2Xjd0YxVTaNhHMT90dwMVT5BzQkhWMD5EewkXT3BTeNhXQq1EdRNjYv5EWMVnVXpVeOJzY21ERNZXTU10dJpHT6J1VZZHeHNWM5MEZ1Z1RkVXOykFdBNDZ2BjMipWN5NmcWdlWuZ1RaZnTXllMG1WY1N2MkNTO5xkNNh0YwIFSh9CXuNmLn1WauR2cj5CdyVmdu92Yn1Wavw1LcpDc0RHaiojIsJye.jpg)
-
- 配置TcpMonitor
我們将偵聽端口8281并将傳入的流量轉發到8280(這是我們的ESB運作代理服務的地方)。
這是在“ Tcp螢幕”中進行設定的方法:
單擊“添加”按鈕後,您會看到TcpMonitor等待連接配接:
是以,讓我們通過它發送一條消息。
-
- 運作Axis用戶端
如示例頁面所示,我對該語句做了一些小的更改。 打開一個新終端,然後從目錄'$ CARBON_HOME / samples / axis2Client'中運作以下指令:
ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dprxurl=http://localhost:8281/ -Dmode=placeorder
-
- 檢查結果
在TCP Monitor中,我們看到在TCP Monitor中添加了一行,而在下部,我們看到了傳入和傳出請求:
這是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