Получение сообщений в виде строки ASCII с помощью KafkaListener - PullRequest
0 голосов
/ 09 апреля 2019

Я использую интерфейс KafkaListener Spring Framework для прослушивания темы Kafka.Код работает, но я получаю сообщения в виде строки ASCII.Я не совсем уверен, почему это так.

Вот мой код:

 import org.slf4j.Logger; 
 import org.slf4j.LoggerFactory; 
 import org.springframework.kafka.annotation.KafkaListener;
 import org.springframework.messaging.handler.annotation.Payload;
 import org.springframework.stereotype.Service;

 @Service 
 public class Receiver {
     private static final Logger LOG = LoggerFactory.getLogger(Receiver.class);

     @KafkaListener(topics = "mongoDBTest", groupId = "test")
     public void listen(@Payload String cMessage) {
         LOG.info("received message=" + cMessage);
         Application.print();
    } 
}

При использовании, например, "test", я получаю "полученное сообщение = 116,101,115,116" в качестве вывода.

1 Ответ

0 голосов
/ 09 апреля 2019

Привет, похоже, что кто-то неправильно использует сообщения, а не просто строку.Если вы можете исправить это в этой части - это круто.

В противном случае вам нужно будет декодировать эти байты в обычную строку.Пожалуйста, попробуйте

String[] split = cMessage.split(",");
byte[] bytes = new byte[split.length];
for (int i = 0; i < split.length; i++) {
    bytes[i] = Byte.parseByte(split[i]);
}
LOG.info("received message=" + new String(bytes));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...