我试图用“spring cloud stream”发送一条简单消息给rabbitmq。基本上,代码如下所示:春云流 - 应用初期化后发送消息
@EnableBinding(Source.class)
@SpringBootApplication
public class SourceApplication {
public static void main(String[] args) {
SpringApplication.run(SourceApplication.class, args);
}
@Autowired Source source;
@PostConstruct
public void init() {
source.send(MessageBuilder.withPayload("payload").build());
}
}
然后我收到此错误信息:
org.springframework.messaging.MessageDeliveryException: Dispatcher has no subscribers for channel 'unknown.channel.name'.; nested exception is org.springframework.integration.MessageDispatchingException: Dispatcher has no subscribers, failedMessage=GenericMessage [payload=******, headers={id=c60dd5be-6576-99d5-fd1b-b1cb94c191c1, timestamp=1488651422892}]
at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:93)
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:423)
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:373)
但是,如果我添加了一些延迟,发送消息(只是第二或很少),它的工作原理确定之前。我的问题是:如何在春季完全初始化消息通道然后发送消息之前等待?
as sad:I can add delay ...但是,我需要的是某种事件列表器,以确保此消息通道已准备就绪 – Maburo