java - 自定义 Spring Scope 不适用于消息 channel

标签 java spring message-queue spring-integration

在 spring 集成中,我正在尝试创建一个具有自定义范围的直接消息 channel ,如下所示

  ...
  <int:channel id="myChannel" scope="validCustomScope" />
  <int:service-activator ref="validSericeReference_WithSameValidCustomScope" method="handleMessage" input-channel="myChannel"/>
  ...

但是,我遇到了一个异常..

org.springframework.integration.MessageDeliveryException: Dispatcher has no subscribers for channel 

注意:此自定义作用域适用于其他 bean。 此问题与讨论的内容相似 here ,但没有解决。如果有人可以帮助解决这个问题,那将是一个巨大的帮助。

最佳答案

服务激活器只会订阅其中一个实例。其他人将抛出 Dispatcher has no subscribers

当服务激活器被 start() 编辑时,您的自定义范围需要弄清楚如何为每个实例传播订阅(服务激活器的 MessageHandler),然后将其传播到端点启动之后创建的任何新实例。

可能不平凡。

就是说。我不清楚将消息发送到非作用域服务的作用域 channel 的好处。

也许如果您解释了您尝试使用自定义范围执行的操作,那么可能会有一个通用的解决方案,但我猜它需要在自定义范围中使用一些棘手的代码。

关于java - 自定义 Spring Scope 不适用于消息 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22416223/

相关文章:

msmq - 寻找能够提供完全 ACID 和什么都没有的消息总线实现

wcf - 带有 WCF 和持久队列的 RabbitMQ

java - Spring中如何进行注解?

Spring Security - UserDetailsS​​ervice 实现 - 登录失败

java - 为什么从已满的队列中发送 Spring AMQP 消息会出现延迟?

apache-kafka - 如何处理消息队列中乱序的消息?

java - 从队列中读取消息并将其显示给用户?

java - 有没有更好的方法来编写这个循环?

java - 难以理解为什么两个嵌套循环的复杂度为 O(n)?

Java 写操作 io_append io_write