I know similar questions have been already asked and I have tried all of those and yet I could not resolve it.
Please find link below to the references tried:
- How to configure Kafka type mapping using spring boot, maven build success but contain errors?
- How to map types using properties file in Kafka_
Please find below the spring settings in producer yaml ——
kafka:
producer:
bootstrap-servers: localhost:9092
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
Please find below the spring settings in producer properties ——
spring.kafka.producer.properties.spring.json.type.mapping=mail:com.upcoming.vice.model.ItemMail
Please find below the spring settings in consumer yaml ——
kafka:
consumer:
bootstrap-servers: localhost:9092
group-id: mail-notifications
auto-offset-reset: earliest
enable-auto-commit: false
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
Please find below the spring settings in consumer properties ——
spring.kafka.consumer.properties.spring.json.type.mapping=mail:com.schedule.notify.model.ItemMail
spring.kafka.consumer.properties.spring.json.trusted.packages=*
Please find below the class definition ——-
public class ItemMail implements Serializable {
public String to;
public String subject;
public String body;
}
Please find below the kafkalistener config class in consumer —————-
@Configuration
@KafkaListener(topics = "itemSaved")
public class KafkaConsumerConfig {
@KafkaHandler
public void handleItemMail(ItemMail mail) {
System.out.println("Received mail: " + mail);
}
}
The error that I am getting ——–
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.JavaType
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[na:na]
... 42 common frames omitted