Spring mvc 拆分器后的spring集成句柄异常

Spring mvc 拆分器后的spring集成句柄异常,spring-mvc,spring-integration,Spring Mvc,Spring Integration,我不熟悉Spring集成 如果我有一个带有批处理负载(json数组)的请求 我使用拆分器将其拆分为jsonobject, 然后我进行验证 如果某些验证失败并将异常抛出错误通道 如何对客户端做出响应,指示某些jsObject失败 还有一些作品 不确定errorChannel的处理程序是否会有帮助,因为验证结果与errorChannel是异步的 如果我像这样调用网关,我如何为整个负载构造一个验证结果,其中每个jsObject都有验证状态 Future r=gateway.send(…) (网关立即将

我不熟悉Spring集成

如果我有一个带有批处理负载(json数组)的请求 我使用拆分器将其拆分为jsonobject, 然后我进行验证

如果某些验证失败并将异常抛出错误通道

如何对客户端做出响应,指示某些jsObject失败 还有一些作品

不确定errorChannel的处理程序是否会有帮助,因为验证结果与errorChannel是异步的

如果我像这样调用网关,我如何为整个负载构造一个验证结果,其中每个jsObject都有验证状态

Future r=gateway.send(…)


(网关立即将请求转发到以下端点)

您必须查看聚合器
EIP:


因此,您的所有对象都将被发送以进行验证,并且它们的结果(好的或坏的)将发送到
以构建单个
验证结果
,以回复到该网关。

感谢您的帮助。我做了一些测试,有一个问题是,在拆分器之后,消息将被分配一个相关id,以便将来在聚合器中进行分组。但问题是,如果splitter之后的一个元素抛出异常,它将创建一条新消息,并且相关id将丢失。聚合器将抱怨“CorrelationStrategy失败”。您有解决此问题的经验吗?当某个下游组件抛出异常时,它将被包装到带有
failedMessage
属性的
MessaginException
。这正是一个可以提取原始标题的钩子,包括必需的
sequenceNumber
sequenceSize
correlationId
。实际上,在发送到聚合器之前,我会将所有这些邮件头复制到新创建的邮件中。是的,我也会这样做,但我没有捕获failedMessage属性。我尝试了一个int:service activator来连接错误通道,回调方法将消息作为输入,我打印了有效负载和消息头,它没有failedMessage属性。。。不确定哪部分出错。
errorChannel
接收
ErrorMessage
s。
payload
确实存在
MessaginException
等等。让我们继续讨论您的问题:!