1

任何人都可以验证这种方法吗?我对 ESB 很陌生,所以在我看来,最好的方法似乎是一个非常复杂的流程。我正在使用 WSO2 ESB(Apache Synapse)。

用例:

  1. 用简单的两列读入 cvs 文件。
  2. 对于每一行,取其中一个值并传递给查找服务 (ldap) 以检索更多数据
  3. 从检索到的数据中获取一个值(对于每一行)并查找到另一个 Web 服务
  4. 将所有行合并为一条消息,然后将生成的消息提交到外部 Web 服务

到目前为止的想法是 1) 使用 vfs 和 smooks 来解析 csv。这似乎很简单,我已经到了可以在迭代调解器中创建单独的 xml 消息来处理每一行的地步。然后对于 2) 将每一行传递给自定义调解器以进行 ldap 查找。对于 3) 获取该结果并使用其中一个元素传递给调出调解器,该调停器获取返回值(基本上是进行枚举查找)然后 4) 不知道还没有那么远。

到目前为止,3 的解决方案看起来非常复杂。Callout 调解器期待一条消息,该消息是完整的 Web 服务消息,它与 xml 行的外观完全不同。我可以使用 xslt 将其转换为 web 服务的正确输入,但结果是完整的 ws 响应 - 我可以使用属性中介获得我感兴趣的值,但不知道如何将其插入回消息中。

总而言之,这似乎不太适合 esb,但直觉上似乎是我应该这样做的方式。我当然可以只用 Java 写这一切,但很多位似乎都在 esb 中。

那么,有什么建议吗?真的很高兴继续研究细节,但如果它是错误的,那就不是了。

谢谢康拉德

4

1 回答 1

1

对于 3) 您可以使用payloadfactory 调解器来创建一个自定义的有效负载来发送。我认为相同的调解员将有助于再次创建响应。

于 2012-12-19T16:20:15.760 回答