2012-05-08 94 views
0

我想重用DefautMessage類來將主體發送到seda componnet。 我的消息類在下面給出,沒有實現。通過擴展DefaultMessage創建一個類

public class TestMessage extends DefaultMessage{ 
} 

然後我accesing它作爲

TestMessage msg = new TestMessage(); 
      msg.setBody(doc); 
      getCamelContext().createProducerTemplate().sendBody("seda:inputDoc",msg); 

但運行應用程序時,我得到以下異常:

Caused by: org.apache.camel.InvalidPayloadException: No body available of type: org.dom4j.Document but has value: Message: [email protected] [Document: name testDocument] of type: com.test.TestMessage on: Message: Message: [email protected] [Document: name testDocument] 

什麼是錯我的執行?

回答

0

通常你不需要定義你自己的消息類。只需使用camel的DefaultMessage並設置您需要的主體和標題。你試圖擴展DefaultMessage有什麼特別的原因嗎?

0

我認爲你換錯了對象 其預期org.dom4j.Document但它得到了org.dom4j.tree.DefaultDocument

什麼是文檔類型?

+0

我沒有包裝任何駱駝。當我只是將文檔傳遞給路由時,它工作正常。當我將請求文檔包裝到默認郵件正文中時,此異常即將到來。 –