如何在Apache Camel路由中将消息体重置为初始值?
在Apache Camel中恢复初始消息体
要恢复步骤1生成的初始消息体,核心思路是先把初始消息体暂存到Exchange的属性中,之后需要重置时再从属性里取出赋值回Body。
修改后的路由代码如下:
from("{{route:from}}") // step 1 .setProperty("ORIGINAL_BODY", body()) // 暂存初始消息体到自定义属性 .setBody("hello world") // step 2 .setBody(exchangeProperty("ORIGINAL_BODY")); // 从属性中取出初始值重置Body
关键说明:
setProperty("ORIGINAL_BODY", body()):在步骤1执行完成后,立刻将当前的消息体(即步骤1生成的初始值)存储到名为ORIGINAL_BODY的Exchange属性中,属性名称可自定义,只要后续取值时保持一致即可。setBody(exchangeProperty("ORIGINAL_BODY")):在需要重置消息体的位置,通过exchangeProperty()方法获取之前存储的初始消息体,重新设置为当前消息体。
如果使用Camel的其他DSL风格(如XML),逻辑完全一致:先将初始Body存入属性,再从属性中读取恢复。
内容的提问来源于stack exchange,提问作者user8297969
相关产品推荐
相关产品推荐

