我正在尝试将值传递给以下路由中的自定义组件,而不是在处理器等中使用交换对象。
输入xml消息
<root>
<node1>vlaue1</node1>
<node2>value2</node2>
</root>
.to("someComponent://foo?param1=staticvalue¶m2=${need to send node2 value here})
所以我试过
.to("someComponent://foo?param1=staticvalue¶m2=${request.body.root.node2})
无效
。为(“someComponent:// FOO的param1 = staticvalue&安培; param2的= $ {request.header.CamelFileName})
也不起作用
任何人都可以指出我正在做的错误。
感谢。
此致 Senthil Kumar Sekar
答案 0 :(得分:0)
使用XPath并将值存储在标题中:
from("file:...")
.setHeader("myNodeValue", xpath("/root/node2/text()"))
.to("someComponent://foo?param1=staticvalue¶m2=${header.myNodeValue})
不知道someComponent
,可以按如下方式测试此方法:
from("file:...")
.setHeader("myNodeValue", xpath("/root/node2/text()"))
.log("node2: ${header.myNodeValue}");
或者,如果在其他地方需要该属性,则将值存储在属性中,而不依赖于消息:
from("file:...")
.setProperty("myNodeValue", xpath("/root/node2/text()"))
.to("someComponent://foo?param1=staticvalue¶m2=${property.myNodeValue})