通过 @JmsListener 接收MQ消息,自己给自己发消息时接收的消息是正常的,但是接收python发的mq消息时自动转成ascii,打开8161端口查看mq消息展示是正常的,
发现mq是有几种消息类型,但是8161展示没说这是什么消息类型。
自己加个MessageConvert好像也不起作用,
又怀疑是我拿到的就已经被转了一次,遂往发送的地方进行排查,本来想着实在找不到原因就让大家统一转成byte数组发送BytesMessage算了
后来发现恰恰是这个问题。。。
读取源码发现原来activeMQ对接python的stomp框架时是可以设置消息类型的,当请求头设置了content-length时发送ByteMessage,没有设置则为TextMessage,由于发送的是json字符串自然是TextMessage方便处理,所以可以在stomp连接时设置content-length为false就可以了
还有就是幸好发现了这个文章
https://blog.csdn.net/qq_28859405/article/details/91382228
另外发现收到的中文被转义过
发现是 python 的 json.dumps方法可以设置参数 ensure_ascii=False 就可以了