如何在wso2 ESB中为队列,端点和消息处理器设置动态

时间:2017-02-06 05:48:59

标签: web-services wso2esb

我有一个表和我的程序在循环中读取表,而对于调用URL,当调用完成时,我设置状态OK。通过其他程序插入此表并且链接列不是常量。表格如下:

    Id   link                        status
==============================================
    1 | 192.168.0.1/adduser?id=1  |
    2 | 192.168.0.2/adduser?id=2  |
    3 | 10.0.0.1/getinfo?id=1      |
    4 | 192.168.0.1/deleteuser?id=10  |

所以我想用队列,端点和消息处理器实现每条记录。 例如: 消息处理器1(队列1,端点1)

端点1 = “192.168.0.1”

消息processor2(队列2,端点2)

端点2 = “192.168.0.2”

消息processor3(队列3,endpoint3)

endpoint3 = “10.0.0.1”

...

我没有使用静态解决方案定义的问题,但我不知道定义动态队列,端点和消息处理器,因为表中的新行将有新的链接,我不喜欢之前的定义。 感谢。

1 个答案:

答案 0 :(得分:0)

不确定我是否正确,但您可以通过在发送之前设置“TO”标头来设置要发送数据的队列。以下是一个例子。

<header xmlns:ns="http://org.apache.synapse/xsd" name="To" expression="concat('jms:/',get-property('queueToSend'), '?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&amp;java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;java.naming.provider.url=failover:(tcp://server1:port,tcp://server2:port)&amp;transport.jms.DestinationType=queue&amp;transport.jms.UserName=queuUser&amp;transport.jms.Password=queuePass')"></header>
  <send></send>