Camel:转换为object并使用Xpath值填充

时间:2014-05-20 02:09:54

标签: xpath apache-camel

我有一个我想要返回的响应对象:

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);

1 个答案:

答案 0 :(得分:0)

使用StringTemplate组件。将模板放置在具有最终XML的类路径中,即{。{1}}

并调用string-template组件,该组件将使用交换体中包含的当前消息替换令牌$ {body}。然后路线将成为

<Response><ReturnValue>${body}</ReturnValue></Response>