0

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

我的流程是这样的:

ActiveMQ -> 聚合器 -> jdbc-message-store -> 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"  />
4

1 回答 1

1

你确定你有extract-payload="true"这里显示的吗?

如果为假,则 JMS 消息本身就是有效负载,而如果为真,则使用消息转换器进行转换(例如,将 JmsTextMessage 转换为字符串)。

打开DEBUG日志记录并检查mqChannel.

于 2013-04-08T12:38:03.990 回答