【发布时间】:2015-04-23 04:59:26
【问题描述】:
我在 Spring Integration 4.1 项目中有以下设置:
- 订阅了发布-订阅者频道的链。
- 启动/停止链的服务总线。
当我停止链时会发生什么,消息从主题中消失,我希望它们保留在那里,直到链再次被激活(很像 JMS 队列)。我怎样才能实现这种行为?
我已经尝试过这种方法,但我从“备份频道”收到一个错误,指出它没有任何订阅者来处理该消息:
1 - 发布-订阅者频道
2 - 正在停止/启动的链
3 - 控制总线网关
4 - 我添加了一个桥接器和一个常规通道来充当队列
这是我使用此解决方案时遇到的错误:
Caused by: org.springframework.integration.MessageDispatchingException: Dispatcher has no subscribers
at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:107)
at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:97)
at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:77)
... 30 more
所以,问题是:我应该如何配置我的频道,以便消息保留在那里,直到再次添加订阅者?有可能吗?
【问题讨论】:
-
嗯,这很尴尬,但我想我只需要在频道声明中添加一个
queue元素,以便不使用DirectChannel实现(确实需要一个消费者在场消息发送时...)