Я перехватываю сообщения, отправленные через JBossESB. Для этого я использую перехватчики трубопроводов.
Проблема заключается в том, что вместо отправителя является услуга (например, PortReference < logical: BlueServiceESB # BlueListener > ), имя получателя - это очередь (а не служба). Это логично, поскольку в некоторых случаях несколько служб могут получать сообщения из заданной очереди, но обычно каждая очередь сопоставляется только с одной службой.
Я хотел бы знать, какая очередь сопоставляется с какой службой, поэтому я могу отображать/сохранять эту информацию и отображать ее как message: 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);
Я хотел бы обратить вспять этот подход - очередь - это вход и обслуживание (EPR = конечная точка = услуга). Есть ли способ, как это сделать, или я просто пытаюсь сделать невозможное здесь. Я не нашел учебников или вопросов по этой теме.
Спасибо за любые советы!