2016-04-23 56 views
0


我已安排其解組XML文件到Java對象(com.sample.Order)以下駱駝路線:速度報告對象

<route> 
    <from uri="file:/data/in?fileName=order.xml&amp;noop=true"/> 
    <unmarshal ref="transform-xml"/> 
    <to uri="velocity:etc/MailBody.vm"/> 
    <to uri="file:/data/out"/> 
    </route> 

這裏是MailBody.vm:

#set($order = $body.get(0).get('com.sample.Order')) 

Order status: 
- Id: $order.id 
- Price: $order.price 

Tax: $order.tax 

Details: 
$order.description 

當執行Camel路徑時,生成的XML文件不會解析$ order字段。有沒有我想念的東西,或者這可能不適合我的駱駝版本(2.15.3)? 感謝

回答

1

嘗試修改模板像圖所示:

#set($order = ${body.get(0).get("com.sample.Order")}) 

Order status: 
- Id: ${order.id} 
- Price: ${order.price} 

Tax: ${order.tax} 

Details: 
${order.description} 
+0

謝謝,但沒有奏效。輸出仍包含$ {order}變量。 – Carla

+0

我想,這意味着'body.get(0).get(「com.sample.Order」)'爲空。 'body'變量包含什麼對象(可以使用** log **組件追蹤它)? –

+0

我已檢查過正文,它包含com.sample.Order類,但是通過增加日誌級別,將打印以下調試:#set語句的DEBUG RHS爲空。上下文將不會被修改。 org.apache.camel.component.velocity.VelocityEndpoint [line 2,column 1] VelocityEndpoint DEBUG空引用[template'org.apache.camel.component.velocity.VelocityEndpoint',line 5,column 7]:$ {order。 id}無法解析。 。 。 。 – Carla