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(message) は処理関数であり、
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 フロー定義の使用にフォールバックする必要がありました。