2015-06-24 40 views
1

似乎selector-expression不支持消息驅動通道適配器。spring-integration jms selector-expression

<int-jms:message-driven-channel-adapter 
      selector-expression="workerGroup = '@environment.getDeploymentEnvironment().toString()'" 
      concurrent-consumers="1" 
      transaction-manager="transactionManager" 
      destination="queue" channel="channel"/> 

==>

'selector-expression' is not allowed to appear in element 'int-jms:message-driven-channel-adapter' 

如何,我可以使這項工作的任何提示。

回答

3

看來您正在嘗試使用SpEL來構建您的消息選擇器。

選擇器必須在初始化過程中定義。

Spring集成...-expression屬性用於在運行時(通常是消息)評估表達式時,而不是在初始化時間期間靜態地,正常使用SpEL用於此目的。

您應該能夠使用...

selector-expression="workerGroup = #{environment.getDeploymentEnvironment().toString()}" 

...設置在初始化時間這個選擇。

1

我想代替他們增加選擇消息驅動溝道適配器選擇表達。我沒有嘗試過,但我猜它與每個提供的文檔相同。