首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SoapFault之后继续使用Spring集成流程

在SoapFault之后继续使用Spring集成流程
EN

Stack Overflow用户
提问于 2015-06-16 12:52:04
回答 1查看 365关注 0票数 1

我们的应用集成流程被定义为拆分器、-> ws网关、->聚合器、拆分器将请求拆分成一个帐号列表,从而对每个帐号启动一个web服务调用,并将来自多个web服务调用的响应聚集在分配器和ws网关之间的aggregator.The信道中,并使用调度器"commonj WorkManagerTaskExecutor“定义每个web服务调用,从而在不同线程中并行启动每个web服务调用。

如果至少有一些web服务调用正确响应;即使所有其他调用都导致SoapFault;我们需要通过使用来自成功响应的数据来处理该场景,并使用引用错误响应错误消息的警告消息。

问题是,在ws网关中定义的resolveFault() FaultMessageResolver方法不返回任何内容,如果至少一个并行web服务调用失败,则控件永远不会到达聚合器。有没有办法处理这种情况。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-16 14:11:11

  1. 您可以将SoapFaultMessageResolver注入<int-ws:outbound-gateway> (fault-message-resolver)。这个代码非常简单: 公共空resolveFault(WebServiceMessage消息)抛出IOException { SoapMessage soapMessage = (SoapMessage)消息;抛出新SoapFaultClientException(soapMessage);}

因此,您失败的WS调用将以Exception结束。

  1. <int-ws:request-handler-advice-chain>添加到<int-ws:outbound-gateway>中,并在那里放置ExpressionEvaluatingRequestHandlerAdvice实例。指定它的errorChannel,并在子流中执行一些不可知的逻辑,并向您的聚合器发送一些特定的消息。不要忘了携带sequenceDetails头与该消息。
  2. 拥有组聚合器中的所有消息将能够发布,这是正常的。
  3. 最后,您可以分析结果List的错误和正常响应。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30868121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档