在单线程Spring Integration中,整个pipleine在同一事务中运行的应用程序,错误通道不适用 . 相反,异常将被抛回调用者 .
我这样做的方法是定义一个服务激活器,它是处理传入消息的组件链中的第一个 .
@ServiceActivator
public Message handleException(Message message) {
try {
return message;
}
catch (Throwable throwable){
// HANDLE ERROR
}
return null;
}
这是正确的方法,还是有更好的策略?
谢谢
1 回答
没有;赢得't do anything at all; it will simply pass the message to the next element in the chain. If you don'需要以任何方式处理错误,并且只是希望它被抛回调用者,你需要什么都不做 . 如果流的开始是网关,则网关将从
MessagingException
解包原因 .当然,您可以在网关上放置一个错误通道并在那里处理它 .
在提出这些一般性问题时,通常最好提供有关您的流程(入口点等)的更多详细信息 .