JBossESB - 队列到服务的映射

2022-09-01 21:29:34

我正在拦截通过 JBossESB 发送的消息。我正在使用管道拦截器来执行此操作。

问题是,尽管发送方是一个服务(例如PortReference<逻辑:BlueServiceESB#BlueListener >),但接收方的名称是队列(而不是服务)。这是合乎逻辑的,因为在某些情况下,多个服务可以从给定队列接收消息,但通常,每个队列仅映射到一个服务。

我想知道哪个队列映射到哪个服务,所以我可以显示/保存此信息,并让它显示为消息:服务--->服务(不是服务--->队列)。

我知道我可以使用注册表获取映射到服务的队列的名称,如下所示:

System.setProperty("javax.xml.registry.ConnectionFactoryClass", "org.apache.ws.scout.registry.ConnectionFactoryImpl");

// Retrieving information from the ESB Registry
Registry reg = RegistryFactory.getRegistry();
System.out.println(reg.findAllServices());
List<EPR> eprs = reg.findEPRs("FirstServiceESB", "SimpleListener");
System.out.println(eprs);

我想反转这种方法 - 队列是输入,服务(EPR = 端点引用 = 服务)是输出。有没有办法做到这一点,或者我只是想在这里做不可能的事情。我没有找到有关此主题的任何教程或问题。

感谢您的任何提示!


答案 1

由于这个问题有25票赞成票,这似乎是一个有用的功能。JBossESB 是开源软件。因此,请自己实现该功能并将其提交到社区!或者只是创建一个更改请求,让其他人来做...


答案 2

尝试查询所有队列并构建反向查找映射。但我不认为有任何功能允许使用队列搜索服务。


推荐