我在運行ActiveQM 5.11.1中嵌入了Camel。我有我需要用一個簡單的駱駝航線隊列之間移動一些Java序列的消息...在不帶反序列化的Camel中的ActiveMQ隊列之間移動消息
<route>
<from uri="activemq:A"/>
<to uri="activemq:B"/>
</route>
如預期,我得到這個錯誤...
WARN | JMS消息偵聽器的執行失敗。造成者: [org.apache.camel.RuntimeCamelException - 無法將正文提取到 :javax.jms.JMSException:無法從內容構建正文。 可序列化類不可用於代理。原因: java.lang.ClassNotFoundException:com.test.MyMessage。消息: ActiveMQObjectMessage
我知道這是因爲駱駝/ AMQ不知道MyMessage
,我可以把它添加到AMQ的類路徑來解決這個問題...但是,這是不是在我的情況選擇。
相反,我可以告訴駱駝/ AMQ不要試圖反序列化它,只是移動它?我嘗試了jmsMessageType
選項,但他們沒有避開這個錯誤...
嘗試使用mapJmsMessage = false –
that Claus ...我在日誌中得到這個警告「WARN |無法確定具體的JmsMessage類型以便在body類中使用,將使用通用的JmsMessage。Body類:org.apache.activemq.command .ActiveMQObjectMessage。如果你想發送一個POJO,那麼你的類可能需要實現java.io.Serializable,或者你可以通過在JMS端點上設置jmsMessageType選項來強制一個特定的類型。「但它確實移動了消息... –
@Claus-補充說,作爲答案,我會給你充分的功勞;) –