首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >骆驼ProducerTemplate和Spring JMSTemplate

骆驼ProducerTemplate和Spring JMSTemplate
EN

Stack Overflow用户
提问于 2018-02-13 12:08:07
回答 1查看 848关注 0票数 1

我正在使用camel发送消息给一个IBM。侦听此队列的MDB需要com.ibm.jms.JMSMapMessage类型的消息。

当我使用camel producerTemplate时,会抛出异常。我正在执行这个producerTemplate.sendBody("wmq:queue",hashMap);

代码语言:javascript
复制
Exception data: java.lang.ClassCastException: com.ibm.jms.JMSMapMessage incompatible with javax.jms.ObjectMessage

所以我尝试了,它成功了。

代码语言:javascript
复制
jmsTemplate.send(new MessageCreator() {
            @Override
            public Message createMessage(Session session)
                    throws JMSException {
                return session.createObjectMessage((Serializable) sctHmap);
            }
        });

问: jms组件文档显示

它将Spring的JMS支持用于声明性事务,包括用于发送的Spring的JmsTemplate和用于消费的MessageListenerContainer。

我尝试了禁用骆驼自动转换使用mapJmsMessage=false。我意识到它不会有帮助,因为它会发送一个散列表,我仍然得到了同样的例外。有什么方法可以让producerTemplate和JMSTemplate一样工作吗?ProducerTemplate似乎更优雅,至少在我的单元测试方面是如此。

EN

回答 1

Stack Overflow用户

发布于 2018-02-14 06:38:00

我似乎误解了类转换异常消息。Camel的发送是正确的,com.ibm.jms.JMSMapMessage,消费者应用程序中的MDB正在等待javax.jms.ObjectMessage。我通过在端点URI中设置jmsMessageType=object来解决这个问题。:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48766509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档