Мне нужно создать вызов API для вывода списка тем с сервера kafka. Но я не могу получить сообщения, опубликованные по этим темам.
Я пытался использовать ObjectMapper
для преобразования значения в строку и его воспроизведения, но все равно не получилось.
Пожалуйста, обратитесь к моему коду:
@GetMapping("/publish/listoftopics")
public String listoftopics(String message) throws JsonProcessingException
{
`Map<String, List<PartitionInfo> > topics;`
Properties props = new Properties();
props.put("bootstrap.servers", "127.0.0.1:9092");
props.put("key.deserializer",
"org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer",
"org.apache.kafka.common.serialization.StringDeserializer");
KafkaConsumer<String, String> consumer = new KafkaConsumer
<String,String>(props);
topics = consumer.listTopics();
consumer.close();
String jsonString = "";
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
try {
jsonString = mapper.writeValueAsString(topics);
}
catch (JsonProcessingException e)
{
e.printStackTrace();
}
return jsonString;
}
Фактический результат: {"OrderDetails": [{}]} (название темы с пустым ключом)
Ожидаемый результат: Название темы со значением ключа