KafkaListener несколько тем в файле yaml

Я хочу читать из нескольких тем, поэтому я объявил их в файле yaml с разделителями-запятыми, но получил следующую ошибку:

java.lang.IllegalStateException: Тема(ы) [ тема-1 , тема-2 , тема-3 , тема-4 , тема-5 , тема-6 , тема-7 ] отсутствует или отсутствует, а значение MissingTopicsFatal равно true

Spring:
  kafka:
    topics:
      tp: topic-1 ,  topic-2,  topic-3,  topic-4,  topic-5,  topic-6, topic-7
@KafkaListener(topics = "#{'${spring.kafka.topics.tp}'.split(',')}",
        concurrency = "190",
        clientIdPrefix = "client1",
        groupId = "group1")
public void listenData(final ConsumerRecord<Object, Object> inputEvent) throws Exception {
    handleMessage(inputEvent);
}

if i declare all topics inside KafkaListener annotation its working fine.
split(',') возвращает список, а не строку CSV
OneCricketeer 15.12.2020 21:20

Он возвращает массив, а не List<?>; проблема выглядит как начальные/конечные пробелы, особенно topic-1 ,.

Gary Russell 15.12.2020 21:41

Уберите пробелы или используйте .split(' *, *').

Gary Russell 15.12.2020 21:51
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
772
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Удалите пробелы

tp: topic-1,topic-2,topic-3,topic-4,topic-5,topic-6,topic-7

Или используйте

.split(' *, *')

Другие вопросы по теме