Spring集成消息处理程序:ActiveMQTextMessage

时间:2013-04-08 11:19:47

标签: spring jdbc integration activemq serializable

我在spring-int聚合器组件中使用jdbc-store时遇到问题。

我的流程是这样的:

ActiveMQ - >聚合器 - > jdbc-message-store - > FTP

但是在处理消息时,我遇到了java.io.NotSerializableException,因为ActiveMQTextMessage不可序列化。

当我使用simpleMessageStore(在内存中)时,这个解决方案正常运行,但我现在无法让它工作。

我是否需要创建自己的MessageHandler实现来将ActiveMQTextMessage转换为正确的Serializable消息,或者我做错了什么?

感谢。

<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 个答案:

答案 0 :(得分:1)

您确定此处显示的是extract-payload="true"吗?

如果为false,则JMS消息本身是有效负载,而当为true时,使用消息转换器转换(例如,JmsTextMessage转换为String)。

启用DEBUG日志记录,并在mqChannel中检查邮件的有效内容。