我编写了一个查询 SOAP 和 REST WS 并以某种方式聚合结果的 Spring Integration 路由。我使用一个 bean 作为有效负载来收集有用的信息,两个有效负载丰富器来查询 Web 服务,最后一个转换器来构建结果。
现在我的问题是,如果系统没有关于我正在查询的实体的信息,REST WS 会返回(按设计) HttpStatus.NOT_FOUND (404)。这需要被视为一个名义上的用例。Spring Integration 默认认为这是一个错误并退出。我需要正确处理这种情况,将 null 存储在我的 bean 或类似的东西中(我可以在以后处理它)并继续。
所以我尝试向出站网关添加一个错误处理程序,但无法完成这项工作。如果我告诉这不是错误(覆盖 hasError()),那么 SI 会尝试解组响应的主体,这显然不起作用;如果我覆盖 handleError() 并且什么都不做,则相同。
也许我没有朝着正确的方向前进,但我错过了一个更好的主意,所以......任何帮助都会感激地接受。