java python mq_python发送消息到activeMQ后java接收到BinaryMessage的坑

本文描述了一个在Python和Java之间使用ActiveMQ进行消息通信时遇到的问题,即Python发送的消息在Java端被解析为BinaryMessage而非期望的TextMessage。解决方案在于Python的stomp库中,通过设置`auto_content_length=False`避免填充`content-length`头,从而让Java正确解析消息。
摘要由CSDN通过智能技术生成

和另一个系统进行对接,使用activemq进行消息通信。对方使用java客户端监听一个topic,我们需要发送TextMessage消息,对方接收后进行处理。而我们因为系统架构的原因只能使用python进行推送,也就只能通过stomp协议发送消息。然后就遇到了问题,发送的消息在java消费者端只能解析成BinaryMessage,而发送的时候根本没有办法指定消息类型。网上搜了很久没有找到相同的情况。

根据官方通过python往ActiveMQ发送message的demo编写如下代码。

#-*-coding:utf-8-*-

importstompimporttime

queue_name= '/queue/SampleQueue'topic_name= '/topic/SampleTopic'listener_name= 'SampleListener'test_name= "springBootMqQueue"springBootMqQueue= '/queue/springBootMqQueue'

classSampleListener(object):defon_message(self, headers, message):print('headers: %s' %headers)print('message: %s' %message)#推送到队列queue

defsend_to_queue(msg):

conn= stomp.Connection10([('192.168.36.213', 61613)], auto_content_length=False)

conn.connect('admin', 'admin', wait=True)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值