gpt4 book ai didi

java - Spring 集成: error-channel : the first exception prevent the rest of messages to be handled

转载 作者:行者123 更新时间:2023-11-30 07:52:03 25 4
gpt4 key购买 nike

需要帮助处理 file:splitter 和 http:outbound-gateway 期间链中的错误。现在,如果当我们收到 status-code=400, 500 ... 时错误消息中存在任何异常,我希望在错误 channel 的服务激活器中处理该异常,并继续处理其他拆分消息。

当我们收到异常时,它会在服务激活器中进行处理,但其他拆分消息不会被处理。

链条:

<int-file:inbound-channel-adapter> ---><int-file:splitter> ---> <int-http:outbound-gateway>

对于从文件中读取的每一行,我们应该调用 WS,因此当我们收到错误消息(状态代码 400 或 500)时,我们应该通过邮件发送它,并继续调用 ws 来获取其他消息。

代码是这样的:

<int-file:inbound-channel-adapter
directory="/META-INF/tmp" id="filesIn" channel="toSplitter">
<int:poller fixed-delay="1000" error-channel="error.channel" />
</int-file:inbound-channel-adapter>

<int-file:splitter input-channel="toSplitter"
output-channel="router" />

<int:recipient-list-router id="recipentRouter" input-channel="router">

<int:recipient channel="type1.channel.request"
selector-expression="headers['file_name'].startsWith('${type1}')" />
<int:recipient channel="another.type1.channel"
selector-expression="headers['file_name'].startsWith('${type1}')" />
<int:recipient channel="type2.channel.request"
selector-expression="headers['file_name'].startsWith('${type2}')" />
<int:recipient channel="anothertype2.channel.request"
selector-expression="headers['file_name'].startsWith('${type2}')" />

</int:recipient-list-router>


<int-http:outbound-gateway
request-channel="type1.channel.request"
url="${url}"
http-method="PUT" expected-response-type="java.lang.String" charset="UTF-8"
reply-timeout="5000" reply-channel="changesim.channel.reply">

</int-http:outbound-gateway>

最佳答案

您需要处理拆分器之后的错误。

一种解决方案是制作 type1.channel.request一个QueueChannel (添加 <int:queue/> 子元素),然后放置 <poller/>在 http 网关上,带有错误 channel 。

拆分器/路由器会将拆分的消息放入队列中,轮询器一次将它们拉出。

另一个解决方案(如果您出于某种原因不想使用队列 channel )是放置一个中流 <gateway/>分离器后有一个错误 channel - 网关将是 ref从服务激活器中产生。

关于java - Spring 集成: error-channel : the first exception prevent the rest of messages to be handled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33217250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com