- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定为什么会出现异常
Caused by: org.springframework.messaging.core.DestinationResolutionException: no output-channel or replyChannel header available
它只是一个简单的 IntegrationFlow,但不确定我在下面的代码中缺少什么。
@Bean
Exchange messageExchange() {
return ExchangeBuilder
.directExchange("attr")
.durable(true)
.build();
}
@Bean
Queue queue() {
return QueueBuilder
.durable("attr_queue")
.build();
}
@Bean
Binding binding() {
return BindingBuilder
.bind(queue())
.to(messageExchange())
.with("attr_queue")
.noargs();
}
@Bean
IntegrationFlow deltaFlow(ConnectionFactory connectionFactory) {
return IntegrationFlows.from(Amqp
.inboundAdapter(connectionFactory, queue()))
.handle(String.class, (payload, headers) -> {
if (payload.isEmpty()) {
log.info("Payload empty");
} else {
log.info("Payload : " + payload);
}
return payload;
})
.get();
}
我试图接触 Spring Integration,但不确定为什么会出现此异常。我想做的就是使用 inboundAdapter
从队列中读取数据并将其记录到控制台。代码运行正常,但是当我向队列发布消息时,出现此异常。使用 Amqp
适配器时是否必须始终指定 replyChannel
或 output-channel
?
最佳答案
不,这不是 AMQP channel 适配器问题。请查看你的 handle()
- 你在那里返回了一些东西。之后没有任何东西可以处理该返回。那么,回复应该去哪里呢?正确的,进入 replyChannel
header 。但是等等,没有人,因为没有什么可以等待回复 - channel 适配器是单向组件。
由于您不对回复执行任何操作,并且框架无法从配置阶段假设您不会处理此回复,因此我们只是在运行时遇到该异常。它不能做出这样的假设,因为在 handle()
之前有一个消息 channel ,因此您可以从其他流等发送带有 replyChannel
header 的消息。但!由于这是您的代码并且您完全控制它,因此您可能会假设没有人会期望从那里得到答复,因此最好从此时停止流式传输。为此,最好使用基于 MessageHandler
的单向 handle()
变体,或者仅返回 null
而不是 payload
。您还可以使用channel(“nullChannel”)
停止流式传输。
关于Spring集成错误 "no output-channel or replyChannel header available",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48069551/
我不确定为什么会出现异常 Caused by: org.springframework.messaging.core.DestinationResolutionException: no output
我正在尝试在 SFTP 中删除文件,我正在使用 SftpOutboundGateway,所有功能都正常,文件已在 SFTP 中删除,但在删除时发送异常: MessageHandlingExceptio
我写了一个简单的 spring 集成应用程序,将文件从一个目录移动到另一个目录,它看起来像这样: @Bean @InboundChannelAdapter(value="requestChannel"
我正在使用以下 SI 流程: 得到以下错误: no output-channel or replyChannel header available?borg.springframework.i
我配置了一个测试,首先将“Req”从服务器发送到我的应用程序,然后使用“Rsp”响应服务器。我成功收到请求消息,但在尝试响应时出现以下错误: org.springframework.messaging
我正在尝试使用 TcpOutboundGateway 通过 TCP 与遗留(非 spring)系统通信并处理响应,但我收到以下错误:DestinationResolutionException:没有可
我是一名优秀的程序员,十分优秀!