JSON десериализуется с помощью apache-kafka в весенней загрузке - PullRequest
0 голосов
/ 11 марта 2019

У меня есть микро-сервис, который отправляет объект json, а другой получает этот объект.

Я настроил потребителя следующим образом:

@Bean
public Map<String, Object> consumerConfigs() {
    Map<String, Object> props = new HashMap<>();
    props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, kafkaServer);
    props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
    props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, JsonDeserializer.class);
    props.put(ConsumerConfig.GROUP_ID_CONFIG, "foo");
    // this is the package from the producer class
    props.put(JsonDeserializer.TRUSTED_PACKAGES, "com.example.employee.dto");
    props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
    return props;
}

, а также, чтобы быть уверенным, добавил эти строки в файл конфигурации YML:

kafka:
topic:
    name: user-add
server:
    host: localhost:9092
consumer:
    properties:
        spring:
            json:
                trusted:
                    packages: com.example.employee.dto

но все равно я получаю эту ошибку:

org.apache.kafka.common.errors.SerializationException: Ошибка десериализации ключа / значения для раздела user-add-0 со смещением 0. При необходимости, пожалуйста, просмотрите запись, чтобы продолжить потребление. Вызывается: java.lang.IllegalArgumentException: класс 'com.example.employee.dto.UserCreateDto' отсутствует в доверенных пакетах: [java.util, java.lang, com.sifast.socle.microservices.authservice.dto] , Если вы считаете, что этот класс безопасен для десериализации, укажите его имя. Если сериализация выполняется только доверенным источником, вы также можете включить доверять всем (*).

Есть что-нибудь, что я пропускаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...