我有一个代码
<int-jpa:updating-outbound-gateway
auto-startup="true"
native-query="update Transactions t set t.transaction_Status = :transactionStatus
where t.bank_Reference_Number = :bankReferenceNumber "
entity-manager="entityManager" persist-mode="PERSIST"
use-payload-as-parameter-source="false">
<int-jpa:transactional />
<int-jpa:parameter name="transactionStatus" expression="payload['transactionStatus']" />
<int-jpa:parameter name="bankReferenceNumber" expression="payload['bankReferenceNumber']" />
</int-jpa:updating-outbound-gateway>
我想添加错误通道,以便如果发生某些异常,我可以看到。
答案 0 :(得分:1)
error-channel
用于独立于用户工作的流:消息驱动的通道适配器,例如, <int-jms:message-driven-channel-adapter>
,其中一个侦听器容器在无限循环中启动并且它的工作是主动的。
另一个示例是Polling Consumer,它定期运行轮询任务,例如<int-file:inbound-channel-adapter>
,或QueueChannel
上的任何消费者。而且:它是积极的,独立于你的存在。
<int-jpa:updating-outbound-gateway>
是被动组件,因此在发送邮件之前它无法执行任何操作。因此,在这种组件中引起的任何错误都会抛出给调用者,就像在原始Java方法调用中完成一样。
详细了解Reference Manual中的错误处理。
对于您的用例,您应该考虑在上游轮询器中添加error-channel
。
另一个案例是ExpressionEvaluatingRequestHandlerAdvice,其failureChannel
可能会针对特定MessageHandler
进行某种错误处理。
答案 1 :(得分:0)
错误通道在某个上游组件上运行(通常是启动流程的任何内容)。
另一种方法是向网关添加ExpressionEvaluatingAdvice
;见the reference manual。