Java JBossESB-队列到服务的映射

Java JBossESB-队列到服务的映射,java,jboss-esb,Java,Jboss Esb,我正在拦截通过JBossESB发送的消息。我正在使用管道拦截器来实现这一点 问题是,尽管发送方是一个服务(例如PortReference),但接收方的名称是一个队列(而不是服务)。这是合乎逻辑的,因为在某些情况下,多个服务可以从给定队列接收消息,但通常每个队列只映射到一个服务 我想知道哪个队列映射到哪个服务,因此我可以显示/保存此信息,并将其显示为消息:service-->service(不是service-->queue) 我知道我可以使用注册表获得映射到服务的队列名称,如下所示: Syste

我正在拦截通过JBossESB发送的消息。我正在使用管道拦截器来实现这一点

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

我想知道哪个队列映射到哪个服务,因此我可以显示/保存此信息,并将其显示为消息:service-->service(不是service-->queue)

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

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);
System.setProperty(“javax.xml.registry.ConnectionFactoryClass”、“org.apache.ws.scout.registry.ConnectionFactoryImpl”);
//从ESB注册表检索信息
Registry reg=RegistryFactory.getRegistry();
System.out.println(reg.findAllServices());
列出eprs=reg.findEPRs(“FirstServiceESB”、“SimpleListener”);
系统输出打印LN(eprs);
我想反转这种方法——队列是输入,服务(EPR=端点引用=服务)是输出。有没有办法做到这一点,或者我只是想在这里做不可能的事情。我没有发现任何关于这个主题的教程或问题


谢谢你的提示

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

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

我不熟悉JBoss ESB EPR数据结构,但查询所有队列并构建反向查找映射是否是您的一个选项?不幸的是,没有这样的功能允许使用队列名搜索服务:-(