Получаю сообщение из темы, подобной этой, но хочу только текстовое сообщение, а не всю информацию, я использовал jms listener и spring boot

#spring-boot #jms #activemq

#spring-boot #jms #activemq

Вопрос:

полученное сообщение является activemqtextmessage {commandId = 5, responseRequired = true, MessageId = ID: WINMU250046-FMG-60272-1552990958996-1:1:1:1:1, originalDestination = null, originalTransactionId = null, producerId = ID:WINMU250046-FMG-60272-1552990958996-1:1:1:1, назначение = тема://testt1234, TransactionID = null, срок действия = 0, временная метка = 1552990959592, прибытие = 0, brokerInTime = 15529909597, brokerOutTime = 1552990959600, CorrelationId = null, replyTo = null, постоянный = true, тип = null, приоритет = 4, groupId = null, последовательность групп = 0, targetConsumerId = null, сжатый = false, идентификатор пользователя = null, содержимое = org.apache.activemq.util.Последовательность байтов @11586f7b, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = издатель тестирования}

Комментарии:

1. Вам нужно проделать здесь еще немного работы, а не просто сбросить какой-то журнал в вопрос. Расскажите нам, что вы сделали, покажите какой-нибудь код, объясните, как вы получили этот вывод.

Ответ №1:

Обычно в JMS API есть все, что вам нужно:

 TextMessage textMessage = (TextMessage) message;
String yourText = textMessage.getText();
  

Но если вы хотите извлечь текст на уровне строки, вам просто нужно использовать методы String.lastIndexOf() и String.substring() :

 String yourText = msg.substring(msg.lastIndexOf("text = ")   7, msg.length() - 1);
  

Я надеюсь, что смог помочь.

Комментарии:

1. Не могли бы вы, пожалуйста, принять ответ? Просто нажмите на выделенную серым галочку рядом с ответом.