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
@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<String, Class<?>> typeMappings = new HashMap<>();
+ typeMappings.put("ADD", AddNumberMessage.class);
+ typeMappings.put("CALC", CalculateSumMessage.class);
+ typeMapper.setIdClassMapping(typeMappings);
+
+ converter.setTypeMapper(typeMapper);
+
+ return converter;
}
}