아... 진짜 반나절 넘게 삽질했다
로그 설정좀 제대로 하고 할껄 ...ㅜㅜㅜ
class is not in the trusted packages 에러는 아마 intellij에서 producer랑 consumer를 모듈로 각각분리해서
entity도 개별적으로 존재? 하는 상황일 것이다 (consumer와 producer의 entity의 package fullname이 다를경우)
예를들어 producer쪽 entity의 package를 포함한 fullname이 zzz.xxx.producer.MyEntity 이고
consumer쪽 entity의 package를 포함한 fullname이 zzz.xxx.consumer.MyEntity 라면
consumer쪽의 JsonDeserializer에서 class is not in the trusted packages 에러를 뿜뿜할 것이다.
왜냐면 직렬화, 역직렬화에서는 package 이름까지 포함하기때문이다 ...
해결은 JsonDeserializer에 addTrustedPackages() 메서드를 수정하면 된다.
@Bean
public ConsumerFactory<String, GCMPushEntity> pushEntityConsumerFactory() {
JsonDeserializer<GCMPushEntity> deserializer = new JsonDeserializer<>(GCMPushEntity.class);
deserializer.setRemoveTypeHeaders(false);
deserializer.addTrustedPackages("*");
deserializer.setUseTypeMapperForKey(true);
Map<String, Object> props = new HashMap<>();
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
props.put(ConsumerConfig.GROUP_ID_CONFIG, groupId);
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, deserializer);
return new DefaultKafkaConsumerFactory<>(
props,
new StringDeserializer(),
deserializer);
}
진짜 개삽질했다...
https://stackoverflow.com/questions/51688924/spring-kafka-the-class-is-not-in-the-trusted-packages
'etc' 카테고리의 다른 글
[h2] h2 database multi connection 옵션주기 (0) | 2020.09.02 |
---|---|
[Redis] Jedis를 활용한 Redis Dummy Data 넣기 (0) | 2020.07.16 |
[nginx] (13: Permission denied) while connecting to upstream 에러 (0) | 2020.05.27 |
[kafka] kafka schema register 설정중 No supported Kafka endpoints are configured 에러 (0) | 2020.05.25 |
[Windows 10] Windows 기본 검색창 안되는 현상 대처 (0) | 2020.02.06 |