2017-08-01 139 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