相关疑难解决方法(0)

Kafka使用者使用ClassNotFoundException

我有一个用Spring Boot 2.0.2编写的Kafka客户应用程序。当我在侦听器中收到消息时,出现以下错误:

Caused by: org.springframework.messaging.converter.MessageConversionException: failed to resolve class name. Class not found [com.test.demo.domain.Account]; nested exception is java.lang.ClassNotFoundException: com.test.demo.domain.Account
Run Code Online (Sandbox Code Playgroud)

生产者中对象的类名称是“ com.test.demo.domain.Account ”,但是在使用者中我有不同的包和类名称。

当我重新包装消费者的类名以匹配生产者时,一切正常。但是,我相信我不必这样做。

有人知道这个问题吗?

====更新====

我的生产者代码:

@Bean public ProducerFactory<String, Account> accountProducerFactory() {
    Map<String, Object> configProps = new HashMap<>();
    configProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
    configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
    configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class.getName());
    return new DefaultKafkaProducerFactory<>(configProps); }

@Bean public KafkaTemplate<String, Account> accountKafkaTemplate() {
    ProducerFactory<String, Account> factory = accountProducerFactory();

    return new KafkaTemplate<>(factory); }
Run Code Online (Sandbox Code Playgroud)

消费者代码:

public ConsumerFactory<String, Account> accountConsumerFactory() {
    Map<String, Object> configProps = new HashMap<>();
    configProps.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
    configProps.put(ConsumerConfig.GROUP_ID_CONFIG, groupName); …
Run Code Online (Sandbox Code Playgroud)

apache-kafka spring-kafka

2
推荐指数
1
解决办法
2112
查看次数

标签 统计

apache-kafka ×1

spring-kafka ×1