我有一个我想要返回的响应对象:
Response myResponse;
from(<step1>).to(<step2>).transform(constant(myResponse));
但是我想在步骤2的输出中填充一个带有XPath值的响应字段,这通常是通过以下方式完成的:
myResponse.setReturnValue(<string_value>);
我提出了如下解决方案,对解组的XML进行了硬编码,然后编组回到Response对象,但我觉得有一种更优雅的方式:
from("").to("").setBody(xpath(<my-xpath>).stringResult())
.setBody(simple("<Response><ReturnValue>${body}</ReturnValue></Response>"))
convertBodyTo(Response.class);
答案 0 :(得分:0)
使用StringTemplate组件。将模板放置在具有最终XML的类路径中,即{。{1}}
并调用string-template组件,该组件将使用交换体中包含的当前消息替换令牌$ {body}。然后路线将成为
<Response><ReturnValue>${body}</ReturnValue></Response>