正如我之前在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工具:
- 配置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: chunked0
这样就完成了本示例,只剩下几个示例了!
参考: The Pragmatic Integrator博客上的JCG合作伙伴 Pascal Alma 与WSO2 ESB进行消息传递的一种方式 。
翻译自: https://www.javacodegeeks.com/2013/03/one-way-messaging-with-wso2-esb.html