我正在尝试在我的代码中处理异常。但是,Messaging Exception包装了代码抛出的自定义异常。
现在我想使用Exception路由器,如果类型是我的自定义异常,那么我想将消息发送到队列a,否则队列b。
现在问题是,路由器正在接收消息传递异常对象,因此它无法识别我的异常,并且正在将消息发送到队列b,而异常根本原因仍然是我的自定义异常。
路由器如下:
<int:exception-type-router input-channel="exceptionRouterChannel"
default-output-channel="unpersistedDest">
<int:mapping exception-type=
"org.springframework.integration.MessageRejectedException"
channel="validationErrorsDest" />
<int:mapping exception-type=
"com.error.StaleMessageException"
channel="discardDest" />
</int:exception-type-router>
任何人都可以帮忙解决这个问题。
答案 0 :(得分:2)
实际上,map
没有理由发送消息异常。 ErrorMessageExceptionTypeRouter
执行cause.getCause()
的循环:https://github.com/spring-projects/spring-integration/blob/master/spring-integration-core/src/main/java/org/springframework/integration/router/ErrorMessageExceptionTypeRouter.java#L41。
因此,您只能映射您的例外情况。