2016-11-25 27 views
0

是有可能实现与WSO2 ESB以下概念:WSO2 ESB - 它可以支持桥接web服务和MQ消息的概念吗?

  • HTTP监听用于与方法web服务被调用(SOAP)
  • Java例程处理消息
  • 同一例程把消息发送到MQ队列Q1
  • 相同程序来从MQ队列Q2得到应答消息
  • 回用处理答复消息,Web服务调用者

或者最好是使用J2EE服务器并通过Java代码完全处理消息传递部分?

此致尼古拉

回答

0

那么现在usecase更清晰了,以便我们可以继续实施它。有两种方法可以做到这一点。

第一种方法

  1. 写代理(HTTP到JMS)服务,它接受的HTTP请求和 地方它在使用JMS发送JMS Q1。
  2. 然后编写另一个代理(JMS to JMS),它从 中挑选JMS Q1的消息,对其进行处理并将其置于JMS Q2中。
  3. 最后,创建另一个代理(JMS to HTTP),以从 获取来自JMS Q2的消息,并使用响应介体将其发送回客户端。

第二种方法

  1. 创建一个代理服务(HTTP到JMS)和使用存储介体来存储所述消息到JMS Q1。
  2. 创建一个转发消息处理器来收听Q1并选择该消息,对其进行处理,并将其放入Q2中。
  3. 然后创建另一个转发消息处理器来侦听Q2,并使用消息处理器中的回复序列将其发送回客户端。

选择你喜欢的方式,让我知道它是怎么回事。

+0

我们打另一个障碍,它看起来像一个必须同一个服务器WSO2 ESB上安装IBM MQ系列,而不仅仅是与WSO2 ESB通过网络连接,其中WSO2只是MQ系列客户端。 – Nikola

+0

这不可能是这种情况。如果两者都在实施JMS API,他们应该互相投诉。根据正确的连接URL,从字面上看,WSO2 ESB应该连接到运行在远程机器上的IBM MQ。 –

0

您可以使用ESB来实现此目的。但你的用例对我来说并不那么清楚。感谢您能否从功能角度解释您的用例。无论如何,你有ESB的HTTP(S)/ JMS监听器和发送器。您无法使用ESB侦听SOAP Web服务。你可以做的是听HTTP流量。创建一个代理,用于侦听HTTP流量,并将消息发送到JMS队列Q1,以便使用JMS端点。然后编写一个JMS监听器代理来听取Q2中的答案。一旦收到,您可以使用send或call mediator调用端点Web服务。这就是我对你的用例的理解。由于上面指定的有线需求,我不知道Q1中的数据转换并将其置于Q2。它看起来很简单HTTP到JMS切换​​用例给我。

+0

函数式用例如下:1.客户端应用程序在ESB上调用webservice方法2. ESB转换XML并在Q1上放置消息(请注意,该方法仍不会将任何值返回给客户端,TCP会话尚未关闭)。 3. Q1的另一端系统处理消息并将结果XML返回给Q2。 4。ESB应该将来自Q2的传入XML转换并作为调用方法的结果返回(webservice/HTTP侦听器现在可以关闭TCP会话)。希望这个描述更清楚。基本上同步的Web服务调用应该转换为异步put/get消息操作。 – Nikola