From ca41ff758db740e759abaca48f92a6b753ef1d2d Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Fri, 14 Feb 2025 15:16:01 +0100 Subject: [PATCH] =?utf8?q?Type-Mappings=20f=C3=BCr=20den=20`StringJsonMess?= =?utf8?q?ageConverter`=20konfiguriert?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../juplo/kafka/ApplicationConfiguration.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/juplo/kafka/ApplicationConfiguration.java b/src/main/java/de/juplo/kafka/ApplicationConfiguration.java index 4a937cde..f3768655 100644 --- a/src/main/java/de/juplo/kafka/ApplicationConfiguration.java +++ b/src/main/java/de/juplo/kafka/ApplicationConfiguration.java @@ -10,8 +10,12 @@ import org.springframework.kafka.core.KafkaTemplate; import org.springframework.kafka.core.ProducerFactory; import org.springframework.kafka.support.converter.ByteArrayJsonMessageConverter; import org.springframework.kafka.support.converter.JsonMessageConverter; +import org.springframework.kafka.support.mapping.DefaultJackson2JavaTypeMapper; +import org.springframework.kafka.support.mapping.Jackson2JavaTypeMapper; import java.time.Duration; +import java.util.HashMap; +import java.util.Map; @Configuration @@ -50,6 +54,18 @@ public class ApplicationConfiguration @Bean public ByteArrayJsonMessageConverter jsonMessageConverter(ObjectMapper objectMapper) { - return new ByteArrayJsonMessageConverter(objectMapper); + ByteArrayJsonMessageConverter converter = new ByteArrayJsonMessageConverter(); + DefaultJackson2JavaTypeMapper typeMapper = new DefaultJackson2JavaTypeMapper(); + + // Verwende eine einfache, kurze Type-ID anstatt FQN + typeMapper.setTypePrecedence(Jackson2JavaTypeMapper.TypePrecedence.TYPE_ID); + Map> typeMappings = new HashMap<>(); + typeMappings.put("ADD", AddNumberMessage.class); + typeMappings.put("CALC", CalculateSumMessage.class); + typeMapper.setIdClassMapping(typeMappings); + + converter.setTypeMapper(typeMapper); + + return converter; } } -- 2.20.1