24

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 = エンド ポイント参照 = サービス) が出力です。これを行う方法はありますか、それともここで不可能なことをしようとしているだけですか。このトピックに関するチュートリアルや質問はまったく見つかりませんでした。

ヒントをありがとう!

4

2 に答える 2

1

この質問には 25 の賛成票があるため、これは便利な機能のようです。JBossESB はオープンソースソフトウェアです。したがって、機能を自分で実装し、コミュニティにコミットしてください! または、他の誰かがそれを行うという変更要求ホッピングを作成するだけです...

于 2014-02-22T09:49:40.740 に答える
0

すべてのキューに対してクエリを実行し、逆ルックアップ マップを作成してみてください。しかし、キューを使用してサービスを検索できる機能はないと思います。

于 2013-11-05T03:21:26.177 に答える