繁体   English   中英

在Camel范围之外传递正文消息

[英]Passing body message outside the scope in Camel

直到现在,我的经验告诉我,消息中的正文始终会随着对其进行的任何处理而发生变化。 因此,到目前为止,我始终会处理数据,最后结果始终会显示在主体上,可以将其用于进一步处理。

目前,我正在经历一些奇怪的事情-或不奇怪,但是我没有习惯过。

我正在使用以下路线

<route>
  <from uri="activemq:queue:add"/>
  <split>
    <simple>${body}</simple>
    <bean ref="pool" method="add(${body.getId},${body.getText})"/>
    <log loggingLevel="INFO" message="GOOD BODY ${body}"/>
  </split>
  <log loggingLevel="INFO" message="BAD BODY of type of argument of add method ${body}"/>
</route>

而且我至少要访问add方法的结果,如GOOD BODY日志中所示,但是最后,由于某种原因,后来的主体由于某种原因与被调用方法add的原始参数交换了。

我在这里工作在拆分ArrayList上,但是无论如何最终我只需要一个结果就可以进行单项输入。 另外,我需要使用add方法添加列表中的所有对象,因此我不能仅对单个条目进行操作。

如何将“内部”处理的结果传递给外部,再传递给始发的呼叫路由?

分割后,例如</split>骆驼默认使用发送到分割器中的原始消息。

如果要使用其他内容,请在拆分器上使用aggregationStrategy构建所需的消息,例如最后拆分的消息或其他内容。

在Camel文档中查看更多详细信息: http : //camel.apache.org/splitter

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM