OK,作爲一種解決方法我手動創建SubscribableJmsChannel:
lazy val subscribeChannel = {
val c = new SubscribableJmsChannel(jmsContainer, jmsTemplate)
c.afterPropertiesSet()
c.subscribe(new MessageHandler {
def handleMessage(message: Message[_]) {processMessage(message)}
})
c
}
subscribeChannel.start()
其中而processMessage(消息)是我的處理功能,並
lazy val jmsContainer= {
val c = new DefaultMessageListenerContainer
c.setConnectionFactory(connectionFactory)
c.setDestination(dest)
c.setPubSubDomain(true)
c.afterPropertiesSet()
c
}
請注意,SubscribableJmsChannel不映射JMS屬性到SI消息頭!我不得不使用Spring Integration XML流定義。
來源
2012-06-29 15:31:41
nau
是的,我也找到了。有沒有辦法讓它pub-sub? – nau
我重新使用MessageListener並需要將JMS TextMessage轉換爲Spring集成消息。有沒有簡單的方法來做到這一點? – nau
你真的不需要做任何事情來做這種轉換--Spring Integration自動將消息從JMS映射到內部的Spring Integration消息結構。 –