2013-04-08 119 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