【发布时间】:2016-02-22 02:07:27
【问题描述】:
嘿,我正在将消息发送到 http 端点,因为我必须在选择性失败时触发错误流,所以我通过网关发送消息,然后最终通过 http 出站网关路由它。
@MessagingGateway(errorChannel="invocationFailureChannel")
public interface Invocator {
@Gateway(requestChannel="invocationChannel")
public Boolean invokeService(Message<String> invocation);
}
@Bean
public IntegrationFlow errorHandlingFlow() {
return IntegrationFlows
.from("invocationFailureChannel")
.transform("payload.getFailedMessage()")
.handle(new GenericHandler<Object>() {
@Override
public Object handle(Object payload, Map<String, Object> headers) {
//Do Stuff
return false;
}
})
.get();
}
错误通道的回复应该会反馈给实际调用网关的 bean,对吧?但我得到了这个奇怪的例外:
o.s.m.c.GenericMessagingTemplate$TemporaryReplyChannel - 收到回复消息,但接收线程在发送请求消息时因异常退出
我尝试为请求和回复设置超时,但这并没有真正帮助。我尝试在调用网关的代码上放置一个 try-catch,但我也没有收到错误。
我什至尝试了一个与以下所示相同的示例:
https://www.youtube.com/watch?v=mF2uq4DnVCg
我不知道为什么它不适合我。即使在示例示例中,我也会遇到相同的错误。
【问题讨论】:
标签: java spring spring-integration