2013-04-08 149 views
0

我在Spring-int聚合器組件中使用jdbc-store時遇到了問題。Spring集成消息處理程序:ActiveMQTextMessage

我的流程是這樣的:

ActiveMQ的 - >聚合 - > JDBC消息店 - > FTP

但在處理完消息,我面臨一個java.io.NotSerializableException,如ActiveMQTextMessage不可序列化。

正如我在使用一個simpleMessageStore(在內存中),這個解決方案工作,但我不能讓它現在工作。

我是否需要創建我自己的實現了MessageHandler到ActiveMQTextMessage轉換成適當的序列化的消息,還是我做錯了什麼?

謝謝。

<int-jms:message-driven-channel-adapter id="inputQueueAdapter" 
         channel="mqChannel" 
         max-concurrent-consumers="3" 
         cache-level="3" 
         extract-payload="true" 
         connection-factory="jmsConnectionFactory" 
         destination-name="test.xdr.queue"/> 


<int:aggregator   id="XDRAggegator" 
         ref="xdrAggregator" 
         input-channel="mqChannel" 
         output-channel="publishChannel" 
         message-store="jdbc-messageStore" 
       /> 

<int-jdbc:message-store id="jdbc-messageStore" data-source="dataSource" /> 

回答

1

您確定您有extract-payload="true"如此處所示?

當此爲假時,JMS消息本身是有效負載,而當真,則使用消息轉換器(例如JmsTextMessage被轉換成字符串)轉換。

打開DEBUG記錄並檢查消息的有效負載mqChannel