2016-10-07 11 views
0

私はプロデューサー(Source)を持っているため、重複@StreamListenerマッピングは、そのプロデューサーは、オブジェクトの異なるタイプを送信します。消費者側では(Sink)、同じ入力チャンネルに複数の@Streamlistenerメソッドをそれぞれ別のパラメータタイプで持たせたいと思っていますが、現在は動作していません。Duplicate @StreamListener mapping for 'input'です。ここで春クラウドストリームカフカ:カフカの出力チャネルにメッセージを書き込み「入力」

は私のコンシューマコードです:

@StreamListener(Sink.INPUT) 
public void on(PostUpvotedEvent event) { 

} 

@StreamListener(Sink.INPUT) 
public void on(PostDownvotedEvent event) { 

} 

が呼ばれるようにどの方法を選択するメッセージタイプにテストする単一@StreamListenerメソッドを持つよりもそれを行うには良い解決策はありますか?

答えて

0

複数の@StreamListener複数の同じバインドされた要素のメソッドは、現在サポートされていません。インバウンドチャネルに複数の加入者を登録する場合は、このようにサポートすることをお勧めします。

これが現在許可されていない理由は、いくつかの本当の理由がある場合もあります機能要求here

+0

を作成してください。私はそれについては分かりません。現在、 'message handler'ベースのStreamListenersは、各バインド可能な要素のメッセージハンドラメソッドからなる' map'を使用します。あなたの場合には、 'input'バインディング名のために、その' map'に登録された単一ハンドラメソッドがあります。現在、 'map'はコンテキストが作成されるまで使用されます。ここからどうやって取っていくのか見てみましょう。 –

関連する問題