2017-08-01 15 views
0

私は、複数の消費者を作成しようとしていますし、それぞれがちょうどメッセージに定義されたいくつかのプロパティでのメッセージの1種類を受け取る:例えば動的に設定JMSセレクター

message.setProperty("id","someId");

私は今持っています消費者にセレクタJmsListenerの設定に関する問題:

@JmsListener(destination = "OMP.DEVICES", containerFactory = "jmsListenerFactory", selector=someVariable) 

私が受け取る変数から動的にセレクタ値を設定したい...

private String someVariable; 
public void setsomeVariable(Long id){ 
     someVariable="Id='"+id+"'"; 
} 

しかし、私はこのエラーを抱えている: The value for annotation attribute JmsListener.selector must be a constant

私はそれを解決することができますどのように?

ありがとうございました

答えて

1

消費者の選択文字列を動的に変更することはできません。コンシューマーは、別の選択文字列で閉じて再オープンする必要があります。

+0

しかし、選択文字列は同じコンシューマで動的に変更されません。基本的に、ライフサイクルで同じ選択文字列を持つコンシューマを作成したかったのですが、動的に設定されます...解決策が見つかりませんでした、私はちょうど特定の条件が確認された場合に値を読み取るフィルタを行った – PJMC

関連する問題