JBossESB を介して送信されるメッセージをインターセプトしています。そのためにパイプラインインターセプターを使用しています。
問題は、送信者はサービス (例: PortReference < logical:BlueServiceESB#BlueListener > ) ですが、受信者の名前は (サービスではなく) キューであることです。複数のサービスが特定のキューからメッセージを受信できる場合があるため、これは論理的ですが、通常、各キューは 1 つのサービスにのみマップされます。
どのキューがどのサービスにマッピングされているか知りたいので、この情報を表示/保存して、次のメッセージのように表示できます: service ---> service (not 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 = エンド ポイント参照 = サービス) が出力です。これを行う方法はありますか、それともここで不可能なことをしようとしているだけですか。このトピックに関するチュートリアルや質問はまったく見つかりませんでした。
ヒントをありがとう!