【问题标题】:How do I overwrite Camel Body?如何覆盖骆驼体?
【发布时间】:2016-07-05 19:32:12
【问题描述】:

我之前使用过其他集成框架和库,一般来说,它们处理消息正文或有效负载的方式是删除除最近的“更新”之外的所有内容。这是我的意思的一个例子:

来自队列的 XML 消息(有效负载是 XML 消息)-> 使用 XPath 从 XML 中获取某些内容(有效负载仍然是 XML 消息)-> 调用某些 REST API(有效负载仍然是 XML 消息)-> 从 REST API 返回(有效负载现在是 REST API 返回的任何内容)

我在 Camel 中寻找这种行为。现在 Camel 所做的是在“从 REST API 返回”之后,有效负载是 REST API 返回的附加原始 XML 消息

对我来说,仅引用 REST API 返回的有效负载/正文的最佳方式是什么?

【问题讨论】:

  • 你能分享一个例子吗? Camel 不会“追加”,每个处理器都可以更改 in 消息并设置它的“当前”值(覆盖之前的任何内容)
  • 如果不了解您的路线是如何构建的,就很难发表评论。通常,您的交换在每次通话后都会被覆盖,因此您所看到的不应该发生。但需要看你的路线才能给你更好的答案。
  • 这种行为听起来不对。你能发布你的路线吗?在对外部 API 进行简单的 REST 调用后,REST API 响应将/应该覆盖实际的骆驼体。

标签: apache-camel


【解决方案1】:

Exchange body {exchange.getIn().getBody()} 将只包含 REST API 的响应。请检查 API 是如何形成响应的,它可能会将输入 xml 附加到输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 2019-02-15
    相关资源
    最近更新 更多