Как предоставить более одного доверенного пакета для десериализации в .yml? - PullRequest
0 голосов
/ 14 февраля 2020

Когда я создаю потребителя и пытаюсь десериализовать объект, я получил ошибку

Причина: IllegalArgumentException: класс com.domain.project2.package2.SomeEvent не находится в доверенных пакетах: [java .util, java .lang, com.domain.project2.package1, com.domain.project2.package2]. Если вы верите, этот класс ....

Моя конфигурация .yml:

spring:
  kafka:
    bootstrap-servers: localhost:9092
    producer:
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.support.serializer.JsonSerializer
    consumer:
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.support.serializer.JsonDeserializer
    properties:
      spring:
        json:
          trusted:
            packages: 'com.domain.project2.package1, com.domain.project2.package2'

1 Ответ

1 голос
/ 14 февраля 2020

Полагаю, вы имеете в виду

spring:
  kafka:
    bootstrap-servers: localhost:9092
    producer:
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
    consumer:
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
    properties:
      spring:
        json:
          trusted:
            packages: 'com.domain.project2.package1, com.domain.project2.package2'

Поскольку вы используете десериализатор Spring, а не apache JsonDeserializer.

Проблема заключается в пробеле после запятой.

Использование 'com.domain.project2.package1,com.domain.project2.package2'.

Вероятно, нам следует обрезать пакеты, чтобы удалить посторонние пространства .

...