【问题标题】:Spring integration message handler : ActiveMQTextMessageSpring集成消息处理程序:ActiveMQTextMessage
【发布时间】:2013-03-30 10:54:47
【问题描述】:

我在 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"  />

【问题讨论】:

    标签: spring jdbc integration activemq serializable


    【解决方案1】:

    你确定你有extract-payload="true" 如此处所示?

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

    打开DEBUG 日志记录并检查mqChannel 中消息的有效负载。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-25
      • 1970-01-01
      • 2021-06-09
      • 2020-04-05
      • 2012-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多