JMS、ActiveMQ - 奇怪的字符串添加到我的短信正文中

JMS, ActiveMQ - weird string prepended to my text message body

我正在开发生产者-消费者应用程序。两者通过 ActiveMQ 队列连接。 当我尝试发送消息时,在内容之前添加了以下字符串:

Sr�)�x-opt-jms-destQ�x-opt-jms-msg-typeQSs�d
�/ID:72a1faef-ff5a-40dd-aecc-61e94c0a432a:1:1:1-1@�queue://name_of_my_queue@@@@@@�~
�Sw�
actual message

消息被消费者检测为 ActiveMQBytesMessage,它无法正确获取其内容。 以下是生产者和消费者的代码片段:

消费者

 String receiveMessage() {
  MessageConsumer consumer = session.createConsumer(session.createQueue(receiverQueue));
  String content = "";


  try {
    Message message = consumer.receive();
    if(message instanceof TextMessage) {
      content = ((TextMessage) message).getText(); 
    }
    else {
      BytesMessage byteMessage = (BytesMessage) message;
      byte[] byteData = null;
      byteData = new byte[(int) byteMessage.getBodyLength()];
      byteMessage.readBytes(byteData);
      byteMessage.reset();
      content =  new String(byteData);
    }
  }
  catch (JMSException | JsonProcessingException e) {
    log.error(e.getMessage());
  }
  return content;
}

制作人

void sendMessage() {
   JMSContext context;

    try {
       context = connectionFactory.createContext(Session.AUTO_ACKNOWLEDGE);
        JMSProducer producer = context.createProducer();
        TextMessage tm = context.createTextMessage("TestMessage");
        producer.send(context.createQueue(myQueue), tm);
      }
    }
    catch (JMSException | JsonProcessingException e) {
       System.out.println(e.getMessage());
    }
}

生产者正在使用 quarkus 应用程序。 我怎么解决这个问题?谢谢!

对于那些可能 运行 遇到同样问题的人:我发现问题出在经纪人身上。我使用的是 rmohr/activemq 容器,我通过切换到 vromero/activemq-artemis

解决了这个问题