原因:RocketMQ內(nèi)置使用的轉(zhuǎn)換器是RocketMQMessageConverter,轉(zhuǎn)換Json時(shí)使用的是MappingJackson2MessageConverter,但是這個(gè)轉(zhuǎn)換器不支持時(shí)間類型。文章來源:http://www.zghlxwxcb.cn/news/detail-573146.html
解決辦法是:
文章來源地址http://www.zghlxwxcb.cn/news/detail-573146.html
- 添加消息轉(zhuǎn)換器,將MappingJackson2MessageConverter進(jìn)行替換,并添加支持時(shí)間模塊
package icu.kevin.mq.rocketmq.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.apache.rocketmq.spring.support.RocketMQMessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.messaging.converter.CompositeMessageConverter;
import org.springframework.messaging.converter.MappingJackson2MessageConverter;
import org.springframework.messaging.converter.MessageConverter;
import java.util.List;
@Configuration
public class RocketMQEnhanceConfig {
/**
* 解決RocketMQ Jackson不支持Java時(shí)間類型配置
*/
@Bean
@Primary
public RocketMQMessageConverter enhanceRocketMQMessageConverter(){
RocketMQMessageConverter converter = new RocketMQMessageConverter();
CompositeMessageConverter compositeMessageConverter = (CompositeMessageConverter) converter.getMessageConverter();
List<MessageConverter> messageConverterList = compositeMessageConverter.getConverters();
for (MessageConverter messageConverter : messageConverterList) {
if(messageConverter instanceof MappingJackson2MessageConverter){
MappingJackson2MessageConverter jackson2MessageConverter = (MappingJackson2MessageConverter) messageConverter;
ObjectMapper objectMapper = jackson2MessageConverter.getObjectMapper();
objectMapper.registerModules(new JavaTimeModule());
}
}
return converter;
}
}
到了這里,關(guān)于rocketmq Cannot construct instance of `java.time.LocalDateTime` (no Creators的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!