- 
                Notifications
    
You must be signed in to change notification settings  - Fork 1.1k
 
Closed
Description
An example is this code snippet from KafkaMessageDrivenChannelAdapter:
		if (JacksonPresent.isJackson2Present()) {
			MessagingMessageConverter messageConverter = new MessagingMessageConverter();
			// For consistency with the rest of Spring Integration channel adapters
			messageConverter.setGenerateMessageId(true);
			messageConverter.setGenerateTimestamp(true);
			DefaultKafkaHeaderMapper headerMapper = new DefaultKafkaHeaderMapper();
			headerMapper.addTrustedPackages(JacksonMessagingUtils.DEFAULT_TRUSTED_PACKAGES.toArray(new String[0]));
			messageConverter.setHeaderMapper(headerMapper);
			this.recordListener.setMessageConverter(messageConverter);
			this.batchListener.setMessageConverter(messageConverter);
		}
So, we are supposed to be in this if only when JacksonPresent.isJackson2Present().
However that JacksonMessagingUtils.DEFAULT_TRUSTED_PACKAGES is from Jackson 3 specific API.
And that leads to the:
Caused by: java.lang.NoClassDefFoundError: tools/jackson/databind/ValueSerializer
    at org.springframework.integration.kafka.inbound.KafkaMessageDrivenChannelAdapter.<init>(KafkaMessageDrivenChannelAdapter.java:141)
Use deprecated JacksonJsonUtils instead in those places.