2013-07-04 57 views
1

我幾乎準備好在java中使用jms與駱駝的應用程序。彈出我們必須添加額外的信息交換/消息。可以說,那些額外的信息實際上是新的Java對象。添加我的新對象進行交換的最佳方式是什麼?Apache Camel:可以在消息體中有多個對象(具有不同的類)?

我有很多駱駝處理器的處理看起來像這樣的消息:

public class MyProcessor implements Processor { 

    @Override 
    public void process(Exchange exchange) throws Exception { 
     String s = exchange.getIn().getBody(String.class); 
     s = magicalTransform(s); 
     exchange.getIn().setBody(s, String.class); 

     //Now I have to add object of some Info.cass: 
     Info info = new Info(new Date()); 
     //Can I add it like this? : 
     exchange.getIn().setBody(info, Info.class); 
    } 

} 

的問題是,我無法找到信息,如果我可以添加許多對象信息。 Message方法:setBody(Object body,Class type)表明它是可能的,但也有方法:getBody()表示只有一個主體類。

如果我不能這樣做,那麼最好的方法是什麼?我可以嘗試將我轉換的字符串和信息包裝到一個類中,並將該新類放入消息中,但它會導致在每個處理器中獲取String的方式發生改變。我想避免這種情況。

回答

3

Exchange的主體是單個Object。如果您想要將多個對象添加到您的交易所主體中,您需要使用設置了所有對象的字段將交換主體設置爲地圖,列表或pojo。

相關問題